我在 assets 目录中有一些模板 HTML 和 JS 文件,结构如下:
app
- assets
- templates
- my_template.html
- javascripts
- application.js
- main.js.erb
其中application.js
包含标准 sprockets 指令://= require main
并main.js.erb
包含对路径的引用my_template.html
:
main.js.erb
: // 这里有一些代码 ... return { pathToTemplate: "<%= asset_path 'my_template.html' %>" } // 这里有更多代码 ...
在开发中,这很好用。main.js.erb
被评估为以下内容:
// Some code here ...
return {
pathToTemplate: "assets/my_template.html"
}
// More code here
在生产中,资产被预编译(gzipped 和空格被删除),并且指纹被附加到文件名。
生产main.js.erb
应如下所示:
pathToTemplate: "assets/my_template-610dd79b5bb3c20d14b81baa891fc9dd.html"
但与开发中的相同。
Sprockets 是否需要配置为还指纹 HTML 文件?也许这是一个错误,因为它正在生成一个带有指纹路径的清单文件,但是asset_path 正在返回一个非指纹路径main.js.erb
?
谢谢你的帮助。