2

私はPHPのバックグラウンドを持っており STATICFILES_DIRS 、settings.pyでパスを指定したいのですが、Windowsでは次のようなフルパスを指定する必要があることを理解しています: D:/path/to/folder/project/static 「/ static /」などのパスを指定する方法があることを知りたいまたはdirname(__FILE__)PHPのようにパスを指定できますか?

私のパスがハードコードされないように。また、Webサーバーは通常、httpパスを使用するため、CSSファイルをロードするための物理パスをたどらないため、物理パスになるのはなぜですか? では、なぜdjangoでこの方法(物理パス)なのですか? 誰か説明してください。

みんなの努力に感謝します。

4

6 に答える 6

19

私のsettings.pyファイルでは、私はいつもそうしています

import os
ROOT_PATH = os.path.dirname(__file__)

それからあなたはすることができます

STATICFILES_DIRS = [os.path.join(ROOT_PATH, 'static')]

ファイルシステム パスが必要な理由STATICFILES_DIRSは、ファイルがオペレーティング システム内のどこにあるかを知る必要があるためです (そのため、次のようなことmanage.py collectstaticが可能です)。設定はウェブサーバーのSTATIC_URLパス用であり、それは管理者や{% static %}タグなどでユーザーに表示するために使用されるものです。STATICFILES_DIRSサーバー側のみであり、レンダリングされたテンプレートなどには表示されません。

于 2012-04-06T20:08:44.007 に答える