2

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

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

4

1 回答 1

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 服务器是什么?

它是唯一失败的资产管道吗?

编辑

为了让 Apache\JBoss 引用 CSS 中的图像,我必须添加 path\war 名称

所以如果我的应用程序根是 localhost:3000/MyApp 然后引用我必须做的图像url(/MyApp/images/hs.png)

如果你有 js.erb 你可以像上面那样做,用 css.erb 你可以做url(<%= asset_path 'hs.png' %>)

于 2012-05-31T00:57:08.847 回答