Django 开发服务器无法提供静态文件

0 投票
2 回答
865 浏览
提问于 2025-04-17 08:08

我不知道自己哪里出错了,但我就是让这个东西不工作。我在用Django 1.3和Python 2.7。

我的项目结构是这样的:

project
   static
   templates
   settings.py
   apps
      ...

在我的settings.py文件里,我有

PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__))
STATIC_ROOT = os.path.realpath(os.path.join(PROJECT_ROOT, 'static'))
STATIC_URL = '/static'

我的urls.py文件:

from django.conf.urls.defaults import *
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^grappelli/', include('grappelli.urls')),
) 
urlpatterns += staticfiles_urlpatterns()

在我的模板中,我使用了 {{ STATIC_URL }},这会生成正确的文件路径,比如:/static/js/libs/modernizr-2.0.6.min.js

但是我的静态文件都加载不出来,我已经仔细检查过目录结构是正确的。我感觉自己快要疯了,所以任何建议都非常感谢。谢谢!

2 个回答

0

你可以选择两种方法:一种是像之前的回答那样添加 STATICFILES_DIRS,另一种是把包含 'static' 文件夹的包目录放到你的 INSTALLED_APPS 里。因为在开发过程中,Django 会自动处理应用中的任何 static 文件夹。如果你的 project 目录不在 Python 的路径上,而且你也不打算让它可以被导入,那么你就需要定义 STATICFILES_DIRS,并把静态文件夹的绝对路径写上。

2

你需要在settings.py文件中的STATICFILES_DIRS里添加你放置静态文件的完整路径,像这样:

STATICFILES_DIRS = (
                '/path/to/static',
)

撰写回答