Django:如何设置jQuery-Raty的静态设置?

Hou*_*man 2 django raty

我想让jquery.raty与Django合作.我完全设置了静态文件的服务,但是它似乎在查找评级图像文件时有问题.

这就是我设置它的方式:

base.html(这里静态加载很好)

<script src="{{ STATIC_URL }}raty/js/jquery.raty.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

模板:

<div id="star"></div>
Run Code Online (Sandbox Code Playgroud)

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'
    });
Run Code Online (Sandbox Code Playgroud)

但不是星星,而是看到替代文字编号:

在此输入图像描述

这是刷新页面时从服务器获得的消息:

[07/Oct/2012 21:03:48] "GET /contact/add/img/star-off-big.png HTTP/1.1" 200 9941
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它会查看当前位置(http://127.0.0.1:8000/contact/add/)并附/img/xxx.png加到/contact/add/.

如何使用STATIC_URL路径在javascript中设置图像的路径?

真的很感谢你对此的帮助.

Mic*_*ick 6

pathRaty 的默认值是"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
});
Run Code Online (Sandbox Code Playgroud)

编辑:

使用jQuery"namespaced"变量STATIC_URL在其他外部javascript文件中使用的一种方法.包含jQuery之后但使用已定义变量的任何脚本之前<head>,这将在您的模板中定义.

<script type="text/javascript">  
    $.myproject = {} // namespace
    $.myproject.STATIC_URL = '{{ STATIC_URL }}';
</script>
Run Code Online (Sandbox Code Playgroud)

然后,$.myproject.STATIC_URL当需要静态资产的绝对URL时,可以使用其他脚本.