我想让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中设置图像的路径?
真的很感谢你对此的帮助.
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时,可以使用其他脚本.