我有一个链接到某些图像的js文件,但我无法让它工作。
我已经尝试过像这样的js扩展......
case 0: var padImg = 'hs.png'; break;
case 0: var padImg = '/assets/hs.png'; break;
我将文件扩展名更改为js.erb并尝试了这个...
case 0: var padImg = '<%= asset_path 'hs.png' %>'; break;
然后我将图像移动到js文件夹,它最终像这样工作......
case 0: var padImg = 'hs.png'; break;
奇怪的是,它适用于我的开发环境,但它不适用于生产。为什么以及如何解决?
答案 0 :(得分:2)
此语法不正确
case 0: var padImg = '<%= asset_path 'hs.png' %>'; break;
它应该会出现JavaScript错误。
尝试
case 0: var padImg = "<%= asset_path 'hs.png' %>"; break;
通常,对于JavaScript / CoffeeScript和ERB,您希望引用图像
$('#logo').attr({
src: "<%= asset_path('logo.png') %>"
});
http://guides.rubyonrails.org/asset_pipeline.html
如果不是这样,那么生产服务器操作系统和Web服务器使用的是什么,如果它与开发不同?
这是pipleine失败的唯一资产吗?
修改强>
对于Apache \ JBoss在CSS中引用图像,我必须添加路径\ war name
所以,如果我的应用根是localhost:3000 / MyApp,那么引用我必须做的图像url(/MyApp/images/hs.png)
如果你有js.erb就可以像上面那样用css.erb做url(<%= asset_path 'hs.png' %>)