【发布时间】:2015-09-07 10:20:12
【问题描述】:
我正在尝试在本地主机上启动我的项目,但是除了 CDN 之外,静态文件都返回 404。
--settings.py--
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1']
STATIC_ROOT = os.path.join(BASE_DIR, "static","static_root")
STATIC_URL = "/static/"
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static", "our_static"),
# '/var/www/static/',
)
然后我的 urls.py 中有一些额外的代码,可能会造成麻烦
--urls.py--
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
【问题讨论】:
-
STATIC_URL应该类似于'/static/'。它不应该依赖STATIC_ROOT(这是服务器上提供静态文件的位置)。 -
哦,我忘了把它改回静态,我试着测试它是否有什么不同,但都出现了 404 错误
-
您尚未显示用于在生产中提供静态文件的服务器配置(例如 Apache 或 Nginx)。
-
您误解了静态文件的工作原理。在开发中,Django 的 runserver 可以提供静态文件。在生产中,您的服务器(例如 Apache 或 Nginx)负责提供静态文件。仅使用 Django 无法在生产环境中“启动并运行”。
-
Django 服务器不 用于生产。不要在您的生产机器上运行它。