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
});

编辑:

一种使用 jQuery“命名空间”变量STATIC_URL在其他外部 javascript 文件中使用的方法。这将在<head>您的模板中定义,包含 jQuery 之后但任何使用定义变量的脚本之前。

<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 回答