Rails 3.链接到javascript文件中的图像不能在生产中使用

时间:2012-05-31 00:31:36

标签: javascript ruby-on-rails ruby

我有一个链接到某些图像的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;

奇怪的是,它适用于我的开发环境,但它不适用于生产。为什么以及如何解决?

1 个答案:

答案 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' %>)