2012-02-06 21 views
1

私はWebデザインアプリ(axure)によって設計された私のdjangoアプリケーション用のテンプレートを持っています。したがって、これらのテンプレートファイル内のすべての静的ファイルの参照は、私は静的ファイルを含めるようにアプリの設定を変更するには、ここhttps://docs.djangoproject.com/en/dev/howto/static-files/を命令に続き、STATIC_URLが固定されているようにdjango - テンプレート内の静的ファイルを参照してください

<img src="/resources/image/icon.gif"/> 

として、相対的なものです。しかし、この方法では、まだこのトークンをすべての静的ファイル参照の前に置く必要があります。

djangoに静的ファイルへの相対パスを受け入れる一般的な方法はありますか?

ありがとうございました!

答えて

4

これは「相対的な」パスではありません。それは「相対的絶対」と呼ばれるものです。あなたが/の前に付いているとき。これはブラウザがドメインから直接次のパスを参照するように指示します。これはDjangoとは関係ありません。それはブラウザと関係があり、彼らはすべてそのように動作します。

{{ STATIC_URL }}には何も特別なものはありません。静的ファイルへの参照に正しいパスを付けることは簡単で安全な方法です。

<img src="/path/to/static/resources/image/icon.gif"/> 

しかし、あなたのSTATIC_URLがこれまでに変更された場合、あなたは運が悪いだろう:あなたが実際にハードコードあなたのHTML内の完全なURLをできました。そのため、{{ STATIC_URL }}を使用しているため、「/ static /」または「http://cdn.someprovider.com/myproject/something-else/static/」に設定されていても、参照は常に機能します。

長いと短い、いいえ、 "一般的な方法"はありません。あなたは、ファイルを見つけることができる正確にブラウザに指示しなければならず、それには{{ STATIC_URL }}を使用する必要があります。

0

nginxのようなバックエンドを使用している場合、/ static/image /を/ path/to/static/resources/image /に設定し、/ staticimageを使用することができます。

使用しているWebサーバーにこのようなパスマッピングを付けることができます。

関連する問題