0

Django を使用しているときに、静的ファイルがサーバーによってどのように検出されるのか、常に疑問に思っていました。最近、Django アプリをサーバーにデプロイしましたが、静的ファイルのデプロイに問題がありました。次のようなエラーが常に発生します。

Using the URLconf defined in cms.urls, Django tried these URL patterns, in this order:
^gre/
The current URL, static/, didn't match any of these.

このようなcssファイルを要求したときhttp://gnijuohz.com/static/css/bootstrap.css

そう 1)

css ファイルと js ファイルを見つけられるように、urls.py で何かをする必要がありますか?

サーバーのルート権限がないため、Django が提供する collectstatic コマンドを使用できないことに注意してください。

STATIC_ROOT が静的ファイルを指すように、setting.py で STATIC_ROOT と STATIC_URL を設定しました。

2)

プロセス全体がどのように機能するかはわかりません。css ファイルを要求すると、一致するために urls.py が検索されますか?

助けてくれてありがとう!

4

1 に答える 1

1

1.

いいえ、Django は本番サーバーで静的ファイルを提供するべきではありません。Apache (または使用する任意のサーバー) は、多くの場合、ディレクトリ /static/ にある静的ファイルを提供する必要があります。つまりcollectstatic、すべての Django アプリからすべての静的ファイルを収集し、STATIC_ROOTサーバーがファイルを提供できるようにそれらを配置します。

urlpatternsinを調整することで、ローカルで静的ファイルを提供できますurls.py

collectstaticDjango はそのように使用されることを意図しているため、使用できないのは残念です。

2.

上で述べたように、それは起こるべきことではありません。

質問に答えるためSTATIC_ROOTに、静的ファイルが配置されているすべての場所へのシンボリック リンクを作成できます。したがって、各 Django アプリの各静的ディレクトリへのシンボリック リンクです。

于 2012-06-05T17:28:44.537 に答える