107

これら 3 つの静的 URL の違いは何ですか?

正しいかどうかわかりませんがMEDIA_ROOT、アップロードした写真を保存するために を使用しています ( 経由models.ImageField())

ただし、管理者と .ini に JS スクリプトを作成しましたadmin.py。メディアを次のように定義しました。

....
class Media:
      js = ('/admin/custom.js', )

そして私のsettings.py

 ....
 STATIC_ROOT = "/home/user/project/django1/top/listing/static"

に を追加しましたcustom.jsが、機能STATIC_ROOT/admin/custom.jsしていません。404 not found エラーをスローします。

そして、 を に変更するSTATIC_ROOTSTATICFILES_DIRS、うまくいきます!!

....
STATICFILES_DIRS = "/home/user/project/django1/top/listing/static"

だから、私はここで何が起こっているのか理解していません。実際、 と の違いがわかりませSTATIC_ROOTSTATICFILES_DIRS

現在、自分のマシンで virtualenv を介して Django をテストしていますが、まだ展開されていません。それが機能しない理由STATIC_ROOTですか??

4

4 に答える 4

29

STATICFILES_DIRSとの違いSTATIC_ROOT

にはSTATICFILES_DIRS、静的ファイルを含む他のディレクトリ (アプリ ディレクトリとは限りません) を含めることができ、これらの静的ファイルは、実行時に STATIC_ROOT に収集されますcollectstatic。これらの静的ファイルは Web サーバーによって提供され、STATIC_ROOT から提供されます。

現在 STATIC_ROOT に提供したいファイルがある場合は、これらを別のディレクトリに移動し、その別のディレクトリを に配置する必要がありますSTATICFILES_DIRS。ディレクトリSTATIC_ROOTは空にし、すべての静的ファイルをそのディレクトリに収集する必要があります。

MEDIA_ROOTメディア ファイル、アップロードされたすべてのファイルが移動します。例:画像、ファイル

于 2014-06-03T18:43:50.537 に答える