Rails 预编译供应商/资产
Posted
技术标签:
【中文标题】Rails 预编译供应商/资产【英文标题】:Rails precompile vendor/asset 【发布时间】:2014-09-12 22:29:43 【问题描述】:我正在尝试预编译供应商资产文件夹中的文件。
在生产中的 Rails 控制台中,我得到了这个:
puts Rails.application.config.assets.precompile
#<Proc:0x000000023b2110@/home/pills/.rvm/gems/ruby-2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/railtie.rb:40 (lambda)>
(?-mix:(?:\/|\\|\A)application\.(css|js)$)
(?-mix:.*.png)
puts Rails.application.config.assets.paths
/media/pills/be3eb155-9e10-4a71-9737-c82606a3dbd4/home/ububtu/code/ccr/app/assets/fonts
/media/pills/be3eb155-9e10-4a71-9737-c82606a3dbd4/home/ububtu/code/ccr/app/assets/images
/media/pills/be3eb155-9e10-4a71-9737-c82606a3dbd4/home/ububtu/code/ccr/app/assets/javascripts
/media/pills/be3eb155-9e10-4a71-9737-c82606a3dbd4/home/ububtu/code/ccr/app/assets/stylesheets
/media/pills/be3eb155-9e10-4a71-9737-c82606a3dbd4/home/ububtu/code/ccr/vendor/assets/chosen
/media/pills/be3eb155-9e10-4a71-9737-c82606a3dbd4/home/ububtu/code/ccr/vendor/assets/javascripts
/media/pills/be3eb155-9e10-4a71-9737-c82606a3dbd4/home/ububtu/code/ccr/vendor/assets/stylesheets
/home/pills/.rvm/gems/ruby-2.1.0/gems/turbolinks-2.2.2/lib/assets/javascripts
/home/pills/.rvm/gems/ruby-2.1.0/gems/jquery-rails-3.1.0/vendor/assets/javascripts
/home/pills/.rvm/gems/ruby-2.1.0/gems/coffee-rails-4.0.1/lib/assets/javascripts
预编译的最后一部分是通过以下方式在生产中获得的:
config.assets.precompile += [/.*.png/]
为什么所选文件夹中的 png 文件没有被预编译?
如果我将 png 复制到 app/assets/images 中,它可以工作,我现在会以这种方式解决问题。
【问题讨论】:
【参考方案1】:试试这个:
config.assets.precompile << /\.(?:png)\z/
我不知道这里的功能在哪里,但是当我将我的代码从喜欢你的版本更改为这个时,它突然开始按预期工作。我只能建议,这是因为您将未转义的点字符放在正则表达式中并且它无法匹配文件名。
【讨论】:
以上是关于Rails 预编译供应商/资产的主要内容,如果未能解决你的问题,请参考以下文章