1

我在 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 错误。

4

1 回答 1

0

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

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

于 2013-02-21T23:34:11.493 回答