2

jquery.ratyを Django で動作させようとしています。静的ファイルの提供は完全にセットアップされていますが、結局、評価画像ファイルを見つけるのに問題があるようです。

これは私がそれを設定した方法です:

base.html (静的ロードはここで問題ありません)

<script src="{{ STATIC_URL }}raty/js/jquery.raty.min.js"></script>

テンプレート:

<div id="star"></div>

js

$('#star').raty({
      cancel    : true,
      cancelOff : 'cancel-off-big.png',
      cancelOn  : 'cancel-on-big.png',
      half      : true,
      size      : 24,
      starHalf  : 'star-half-big.png',
      starOff   : 'star-off-big.png',
      starOn    : 'star-on-big.png'
    });

ただし、星の代わりに代替テキスト番号が表示されます。

ここに画像の説明を入力

これは、ページを更新するときにサーバーから受け取るメッセージです。

[07/Oct/2012 21:03:48] "GET /contact/add/img/star-off-big.png HTTP/1.1" 200 9941

なぜ現在の場所 ( http://127.0.0.1:8000/contact/add/ ) を見て、に追加/img/xxx.pngするのかわかりません/contact/add/

STATIC_URL パスを使用して JavaScript で画像へのパスを設定するにはどうすればよいですか?

これについてあなたの助けを本当に感謝します.

4

2 に答える 2

6

Ratyのデフォルトpathは「img」です。path絶対 URL として渡してみてください:

$('#star').raty({
    cancel    : true,
    cancelOff : 'cancel-off-big.png',
    cancelOn  : 'cancel-on-big.png',
    half      : true,
    size      : 24,
    starHalf  : '../raty/img/star-half-big.png',
    starOff   : 'star-off-big.png',
    starOn    : 'star-on-big.png',
    path      : '{{ STATIC_URL }}img' // <-- or wherever your raty images are
});

編集:

STATIC_URL他の外部 JavaScript ファイルで使用するために jQuery の「名前空間」変数を使用する 1 つの方法。これは、jQuery を含めた、定義された変数を使用するスクリプトの前に<head>、テンプレートの で定義されます。

<script type="text/javascript">  
    $.myproject = {} // namespace
    $.myproject.STATIC_URL = '{{ STATIC_URL }}';
</script>

$.myproject.STATIC_URL次に、静的アセットへの絶対 URL が必要な場合に、他のスクリプトを使用できます。

于 2012-10-07T20:19:09.350 に答える
1

最も簡単な方法は、複数の評価を使用する場合にパスをグローバルに設定して、どこでも繰り返す必要がないようにすることです。

<script type="text/javascript" src="{{ STATIC_URL }}raty/jquery.raty.min.js"></script>
<script type="text/javascript">
    $.fn.raty.defaults.path = '{{ STATIC_URL }}raty/img';
</script>
于 2013-09-17T15:54:31.307 に答える