【发布时间】:2014-12-30 00:52:44
【问题描述】:
我有一个外部 javascript 插件,并且有很多这样的代码,其中图像 src 属性是动态构建的。
$prod.append("<img class='fx_shadow' id='shd_" + i + "' + src='" + folderAssets + "/shadow_fx.png' />");
使用 rails 4.1+,我正在预编译此外部代码提供和上面引用的相关图像和资产。自然,图像无法在生产环境中加载,因为使用直接 src 属性不会捕获消化和预编译图像的指纹。
如何从外部 javascript 文件而不是 css 文件中正确调用 asset_url 方法(它会输出带有摘要的正确资产文件名) ? (这个javascript不是restful模板js.erb文件,而是manifest中包含的js文件。)
另外,有没有一种优雅的方法来处理和重构这个?
【问题讨论】:
-
您的 JavaScript 文件扩展名是 .js 还是 .js.erb?
-
js。我应该将其更改为使用 js.erb?
-
是的,将其更改为
.js.erb,然后:$prod.append("<img class='fx_shadow' id='shd_" + i + "' + src='<%= asset_path('shadow_fx.png') %>' />"); -
如果这行得通,我不是,但也尝试这样做:
$prod.append("<%= image_tag 'shadow_fx.png', :class => 'fx_shadow' %>");
标签: javascript ruby-on-rails asset-pipeline assets helper