我正在关注使用CDN为我的satic文件设置STATIC_ROOT的教程,但我决定在我的django应用程序所在的同一台服务器上提供我的静态文件。我尝试更改为下面的新设置,然后运行manage.py collectstatic,现在静态文件未加载。我究竟做错了什么?这是w / django 1.9
新设置不起作用:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
旧设置工作:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_cdn")
答案 0 :(得分:1)
你在哪里保存静态文件?
如果您将它们保存在第二个设置文件中的BASE_DIR/static then it is important to include the same
STATICFILES_DIRS`中。
如果您的静态文件遍布不同的应用,那么您需要确保将django.contrib.staticfiles.finders.AppDirectoriesFinder
添加到STATICFILES_FINDERS。
collectstatic
的目的是从所有各种应用程序(管理员,民意调查等)获取静态文件,并将它们移动到静态根目录进行服务。您还需要确保STATIC_ROOT
为being served。
将STATIC_ROOT指向BASE_DIR中的某个位置也可能不是一个好主意 - 通常这不会由您的Web服务器静态提供。