4

我有一个 Dreamhost 共享服务器托管乘客 Python/Django。目前我有一个收集非 python 文件的全局文件夹(/public/static、/public/media)。当我“收集静态”时,我的所有应用程序的 */static 文件都会被复制到全局 /public/static 文件夹中。目前很好。

1)我厌倦了使用collectstatic。我想删除我的应用程序的 */static 文件夹并将它们的文件放在全局 /public/static 中。这适用于 Dreamhost,因为Passenger Python 将Apache 的文档根指向/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/'
)

网址.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)
4

1 回答 1

3

STATIC_ROOT并且MEDIA_ROOT需要位于您的 Django 项目之外。因此,collecstatic管理命令将所有静态资源配置在外部位置,这就是它的本意。

我建议您重新考虑如何管理静态文件。您即将做一些非常错误的事情,恐怕您完全错过了重点并违反了正确的框架行为。

于 2012-10-23T02:21:08.607 回答