4

Passenger Python/Django をホストする Dreamhost 共有サーバーがあります。現在、Python 以外のファイルを収集するグローバル フォルダー (/public/static、/public/media) があります。「collectstatic」を実行すると、アプリのすべての */static ファイルがグローバルな /public/static フォルダーにコピーされます。これまでのところ良い。

1) collectstatic の使用にうんざりしています。アプリの */static フォルダーを削除し、それらのファイルをグローバルな /public/static に配置したいと考えています。Passenger Python は Apache のドキュメント ルートを /public にポイントするため、これは Dreamhost で機能します。これにより、/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)
4

1 に答える 1

3

STATIC_ROOTMEDIA_ROOTDjango プロジェクトの外に配置する必要があります。したがって、collecstatic意図されているように、すべての静的リソースを外部の場所に配置するための管理コマンドです。

静的ファイルの管理方法を再考することをお勧めします。あなたは何かひどく間違ったことをしようとしています。残念ながら、あなたは完全に要点を見逃しており、適切なフレームワークの動作に反しています。

于 2012-10-23T02:21:08.607 に答える