Rails 4资产管道不会使用asset_path引用其他资产来覆盖资产

Chr*_*ola 6 ruby-on-rails heroku asset-pipeline

因此,资产管道摘要存在一个小问题,即我们有许多HTML模板作为资产(对于AngularJS),我们使用asset_path帮助程序在Javascript文件中引用这些资产的路径.不幸的是,由于资产预编译步骤(和Heroku)检查更改的方式,对模板进行更改不会导致重新编译javascript文件.

所以基本上在像application.coffee.erb我们可能有类似的东西的文件中:

url = '<%= asset_path('views/template.html') %>'
Run Code Online (Sandbox Code Playgroud)

当我们运行时rake assets:precompile,将变为/assets/views/template-1023911231.html具有摘要值但是如果template.html.slim更改,则摘要将改变但是由于application.coffee.erb没有从根本上改变它不会被重新编译并继续指向旧的摘要.

思考?解决方案?这实际上对我来说似乎是个错误.

更新

目前我最好的解决方案是在application.rb中更新资产版本,如果我们需要更改我们的HTML模板资产但没有更改javascript.

Chr*_*ola 5

这里提出了一个解决方案,涉及使用depend_onor depend_on_asset指令.在我的情况下,将此添加到.js.erb文件工作:

//= depend_on_asset views/template.html

url = '<%= asset_path('views/template.html') %>'
Run Code Online (Sandbox Code Playgroud)

这将在views/template.html根据需要进行更改时重新编译此文件.