因此,我想避免使用 ERB 处理 JavaScript 文件,这样我就可以获得正确的资源路径,例如图像。
目前,这似乎是流行的方法:
var myImage = "<%= asset_path('my_image') %>";
当然,这需要将文件名更改为“*.erb”,以便对其进行处理。
我宁愿将 ERB 的丑陋隔离到项目中的一个点,制作一个清单文件(例如“assets.js.erb”)来计算并提供我的 JavaScript 所需的所有资源路径。
我当然可以通过个案处理来做到这一点:
ASSETS =
"my_image": "<%= asset_path('my_image') %>"
window.assetPath = (path) -> ASSETS[path]
但是,我真的宁愿只写一些 ERB 来递归我所有的asset_paths.asset_environment.paths
并为我构建一个大对象文字清单,以便我的真实应用程序 JavaScript 可以自信地调用:
var myImage = assetPath('my_image');
关于(1)是否有一种我错过的更简单的方法,或者(2)我如何完成对所有潜在有效论据的搜索的任何想法asset_path
?.
更简单的方法:
获取 .js.erb 中的资产前缀:。如果需要绝对路径,您还可以获取应用程序 URL(从 Rails 获取它更复杂,因此您可以将其硬编码到 .js.erb 中?)
如果您正在使用预编译的资源,请获取存储在中的文件的指纹清单.yml(位于 )。清单包含一个列表,其中包含您的所有资产及其各自的指纹(文档 http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets)
使 assetPath 只需将应用程序 URL + 前缀添加到您的图像名称或指纹中
不方便的是您必须指定完整的图像名称(包括扩展名)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)