【发布时间】:2019-12-06 13:25:24
【问题描述】:
当 django 查找静态文件时,我不断收到 404 错误。
settings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'business', 'static_cdn')
STATIC_URL = '/static_cdn/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'business', 'static'),
]
应用的项目树结构
- business
-- migrations
--- ....
-- static_cdn
--- business
---- main.css
---- scripts.js
-- templates
--- business
---- base.html
---- home.html
-- templatetags
--- ...
-- __init__.py
-- admin.py
-- apps.py
-- models.py
-- tests.py
-- urls.py
-- views.py
错误
[29/Jul/2019 13:09:45] "GET / HTTP/1.1" 200 12670
[29/Jul/2019 13:09:45] "GET /static_cdn/business/main.css HTTP/1.1" 404 77
[29/Jul/2019 13:09:45] "GET /static_cdn/business/scripts.js HTTP/1.1" 404 77
我还链接到像 {% static 'business/main.css' %} 这样的静态文件,我的文档顶部确实有 {% load static %}。
为什么 django 找不到静态文件?该错误表示它正在寻找正确的位置,但它返回 404 错误。
如果你还有什么需要,可以看我的code
注意:
我认为 django 无法读取这些文件,但我不知道为什么... Collectstatic 将所有 static_cdn/ 放入同一应用程序目录中的 static/ .
【问题讨论】:
-
是否有可能将 DEBUG 设置为 False?
-
@Amit 是的
-
只有在开发环境而非生产环境中才尝试将其更改为 True。
-
@Amit 我正在尝试将其推送到 heroku,那里也会发生完全相同的事情,对吧?
-
对于生产,您可能必须先运行 collectstatic。如果您正在推动生产,切勿将 DEBUG 设置为 True。请仔细查看 Dango 文档进行部署。这不是很难,但也不是微不足道的。当心。暂时为“本地”测试将 DEBUG 设置为 True。一切顺利。
标签: python django http-status-code-404 static-files