0

好的,都。我知道这是很多人在各种情况下都解决过的问题,但我一辈子都无法让我的 Django 1.9 开发服务器在我的本地计算机上提供静态内容。静态文件在部署前运行良好,在我的部署服务器上完全正常,但现在在我的测试环境(本地计算机runserver)中一切都被破坏了,我真的需要能够在开发环境中测试样式表。

我已经尝试所有 这些解决方案以及更多,遵循文档指南,在开发回购中再次使用......没有任何效果,我无能为力。 collectstatic

目前,我有DEBUG = True,以及以下设置:

文件夹层次结构

project/
   manage.py
   (&c)
   app/
     urls.py
     models.py
     (&c)
   project/
     settings.py
     urls.py
     (&c)
   static/
     styles/
     images/
     (&c)

settings.py 静态文件设置

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATICFILES_DIRS = (
    os.path.join(STATIC_ROOT, 'styles/'),
    os.path.join(STATIC_ROOT, 'js/'),
    os.path.join(STATIC_ROOT, 'audio/'),
    os.path.join(STATIC_ROOT, 'images/'),
    os.path.join(STATIC_ROOT, 'admin/'),
    os.path.join(STATIC_ROOT, 'documents/'),
)

urls.py URL 模式

from django.conf.urls import include, url, patterns
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin

urlpatterns = [
    # ... project url patterns blah blah ...
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += patterns('', (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATIC_ROOT, 'show_indexes': True}))

{% load staticfiles %}的模板中还有适当的{% static %}调用(例如:){% static 'styles/main.css' %}

作为参考,当我加载页面时,命令行为我提供以下信息:

"GET /static/styles/main.css HTTP/1.1" 404 1759

如果有人知道我错过的修复程序,甚至可能有滚雪球般的工作机会,告诉我。这让我发疯了,无法正确测试。

编辑:按照建议,我已在本地计算机上更新到 Django 1.11,当前问题没有任何更改。

4

2 回答 2

0

您可以尝试使用绝对路径创建 STATIC_ROOT 变量并检查它是否有效吗?

也许该 var 的构造不正确。

您还可以通过以下方式检查 STATIC_ROOT var

python manage.py shell

看看它是否适合你的路径。

于 2017-06-14T02:06:53.507 回答
0

我无法对其进行测试,但也许可以尝试更改:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

对此:

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

顺便说一句,1.9 版不受支持,也存在安全风险。您可能想要升级到另一个版本。

于 2017-06-14T01:43:48.397 回答