Django静态文件无法使用经过验证的正确设置加载

时间:2013-02-20 19:46:38

标签: python django python-2.7 django-staticfiles

我在Ubuntu 12.10上使用Python 2.7运行Django 1.4。我在一个开发人员团队工作,从昨天到今天似乎已经发生了变化,我似乎无法在本地使用runserver加载静态文件。我们的开发环境运行良好。所有其他开发人员的本地环境都运行良好。我们的生产环境很好。作为一个团队,我们有点难过,希望社区能够对这个问题有所了解。

以下是该项目的相关部分:

project.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}),
    )

project.settings.dev

from __init__ import *

DEBUG = True
TEMPLATE_DEBUG = True

project.settings

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/复制到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错误。

1 个答案:

答案 0 :(得分:0)

我无法找到基于代码的解决方案来解决这个问题。为了解决这个问题,我删除了项目并删除了我的虚拟环境。然后我重新创建了我的虚拟环境,从github获取了fork并重新设置了整个项目环境。

现在它正在运作。 * *耸肩