我在 Ubuntu 12.10 上运行 Django 1.4 和 Python 2.7。我在一个开发人员团队中工作,从昨天到今天似乎发生了一些变化,我似乎无法使用 runserver 在本地加载静态文件。我们有一个运行良好的开发环境。所有其他开发人员本地环境都运行良好。我们的生产环境运行良好。作为一个团队,我们有点难过,希望社区能够对这个问题有所了解。
以下是项目的相关部分:
项目.urls
if settings.TEMPLATE_DEBUG:
urlpatterns += patterns('django.views.static',
(r'^media/(?P<path>.*)$', 'serve', {
'document_root': settings.MEDIA_ROOT}),
(r'^static/(?P<path>.*)$', 'serve', {
'show_indexes': True,
'document_root': settings.STATIC_ROOT}),
)
项目.settings.dev
from __init__ import *
DEBUG = True
TEMPLATE_DEBUG = True
项目设置
PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
项目结构:
project
--apps/
--<dozens of apps>
--settings/
--__init__.py
--dev.py
--staticfiles/
--templates/
--__init__.py
--manage.py
--tests.py
--urls.py
我已删除project/static/
并运行manage.py collectstatic
,它将 404 静态文件复制到project/static/
from project/staticfiles/
。
如果我然后运行,manage.py runserver
我可以看到该站点,但没有加载静态样式/文件。
请注意,似乎没有其他人遇到此问题。我们都使用来自 Github 的相同代码库。从字面上看,我没有理由面对这个问题,而其他人则没有。有任何想法吗?我正在考虑只在本地使用 Apache2 并设置 .wsgi 文件并完全跳过 Django 服务器 - 但我真的不想这样做。
编辑 1:我注意到 Django 服务器确实抱怨了一些静态文件。
[20/Feb/2013 16:59:40] "GET /accounts/login/ HTTP/1.1" 302 0
[20/Feb/2013 16:59:40] "GET /dashboard/ HTTP/1.1" 200 8645
[20/Feb/2013 16:59:40] "GET /static/js/libs/less/less.js HTTP/1.1" 404 950
[20/Feb/2013 16:59:40] "GET /static/less/proton-app.less HTTP/1.1" 404 950
[20/Feb/2013 16:59:40] "GET /static/CACHE/js/987f5472f2f9.js HTTP/1.1" 404 950
[20/Feb/2013 16:59:41] "GET /static/CACHE/js/d5e323c0aed6.js HTTP/1.1" 404 950
[20/Feb/2013 16:59:41] "GET /static/images/favicon.png HTTP/1.1" 404 950
我很抱歉。是的,有一些与静态文件相关的 404 错误。