我有一个托管Passenger Python / Django的Dreamhost共享服务器。目前我有一个收集非python文件的全局文件夹(/ public / static,/ public / media)。当我执行“collectstatic”时,我的所有应用程序的* /静态文件都会被复制到global / public / static文件夹中。好到目前为止。
1)我使用 collectstatic 累了。我想删除我的应用程序的* / static文件夹并将其文件放在global / public / static中。这适用于Dreamhost,因为Passenger Python将Apache的Document Root指向/ public,它将正确检索/ public / static和/ public / media。但是在开发方面我没有这样的功能(在python manage.py下)。
2) Dreamhost /共享托管下的静态/缓存文件的任何优化?
以下是我的设置:
网站设置:
STATICFILES_DIRS = (
ABS_PATH + '/???/???/static/', #My App's static dir
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#'django.contrib.staticfiles.finders.DefaultStorageFinder'
)
TEMPLATE_DIRS = (
#ABS_PATH + '/hdrtoronto/hdrtoronto/templates/'
ABS_PATH + '/templates/'
)
Urls.py:
if os.environ.get("django_dev", None):
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)
答案 0 :(得分:3)
STATIC_ROOT
和MEDIA_ROOT
需要位于Django项目之外。因此,collecstatic
管理命令,用于将所有静态资源并置在外部位置,就像它本来一样。
我建议您重新考虑如何管理静态文件。你将要做一些非常错误的事情,我担心你完全忽略了这一点,并且违背了正确的框架行为。