Django 开发服务器无法提供静态文件
我不知道自己哪里出错了,但我就是让这个东西不工作。我在用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',
)