【问题标题】:django - Server error loading static filesdjango - 服务器错误加载静态文件
【发布时间】:2013-03-03 21:59:12
【问题描述】:

所以我正在建立自己的 django 网站。现在我坚持加载静力学。 我在控制台中收到以下错误:

 GET http://localhost:8000/static/css/style.css 500 (Internal Server Error)

我正在尝试使用静态标签加载 css 文件:

{{ STATIC_URL }}

在我的设置中,我编辑了以下内容:

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))

STATIC_ROOT = os.environ.get('STATIC_ROOT',os.path.join(PROJECT_ROOT,"static",))
STATIC_URL = '/static/'


STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, "static",),
)

还添加了 TEMPLATE_CONTEXT_PROCESSORS:

TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
)

将以下内容添加到 urls.py 以便我可以导航到 localhost:8000/static/

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

我不知道我做错了什么。 PROJECT_ROOT 指向项目的根目录。我也将它用于我的 TEMPLATE_DIR,效果很好。

希望有人能赐教!我一直在谷歌搜索,并查看了其他问题,但据我所知,我做了我应该做的一切!

提前谢谢!!

【问题讨论】:

标签: django static django-staticfiles


【解决方案1】:
Change the your debug into DEBUG=False

【讨论】:

  • 你能解释一下为什么我应该把它改成这个吗?我试过了,还是报错。
  • @KevinvanHengst 等一下你的 DEBUG = True 吗?
  • 将其更改为 DEBUG=False
  • 好的,当我将其更改为 False 时,它​​可以工作了!但是拾取 css 文件与 DEBUB 为真/假有什么关系?
  • 问题不在于调试。我去了终端并遇到了这个:"ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting" 所以我清除了我的 STATIC_ROOT,它现在工作正常。与 DEBUG = True/False
【解决方案2】:

您在 STATICFILES_DIRS 中有 STATIC_ROOT !这是不正确的。

不确定您的问题是否与此有关,但它明确表明对 django 静态文件管理缺乏了解。

也许在阅读this article之后你会完全理解并能够正确设置它。

而你不需要 DEBUG=True:

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

【讨论】:

    【解决方案3】:

    嗯,我遇到了同样的问题,然后我看到了这个错误信息:

    "您的 STATICFILES_DIRS 设置不是元组或列表;" django.core.exceptions.ImproperlyConfigured:你的 STATICFILES_DIRS 设置不是元组或列表;也许您忘记了结尾的逗号?”

    所以,我转换了

    的结果
    (os.path.join(BASE_DIR, 'static'))
    

    到一个列表:

    STATICFILES_DIRS = [(os.path.join(BASE_DIR, 'static'))]
    

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 2013-12-08
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 2020-12-30
      • 1970-01-01
      相关资源
      最近更新 更多