在Rails 4中生成样式表和javascript文件的列表或路径

MZB*_*MZB 5 ruby-on-rails sprockets asset-pipeline ruby-on-rails-4

我正在编写一个使用自定义缓存清单文件的Rails4应用程序,该文件需要包含对所有必需的Javascript和CSS文件的引用.由于应用程序的性质,无法使用Rack Offline gem.

stylesheet_link_tagjavascript_include_tag电话产生正确的文件列表(由资产产生的管道),但在HTML代码嵌入其中.

有没有办法获得控制器中所有已编译的javascript和样式表文件的路径?

例如.

/assets/custom.css?body=1
/assets/incidents.css?body=1
/assets/users.css?body=1
/assets/application.css?body=
/assets/jquery.js?body=1
/assets/bootstrap/affix.js?body=1
...
Run Code Online (Sandbox Code Playgroud)

kdd*_*isz 5

那个很有趣!不得不进入链轮源来解决它.

asset_list = Rails.application.assets.each_logical_path(*Rails.application.config.assets).to_a
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过资产列表进入grep,例如:

asset_list.grep(/\.(js|css)/)
Run Code Online (Sandbox Code Playgroud)

编辑:

如果你想要十六进制摘要,你可以这样做:

environment = Rails.application.assets
asset_list = environment.each_logical_path(*Rails.application.config.assets).to_a
asset_list.map! { |asset| environment.find_asset(asset).digest_path rescue nil }.compact
Run Code Online (Sandbox Code Playgroud)