Rails 4资产管道丢失供应商资产

7

我似乎无法弄清楚如何让sprockets在vendor/assets中找到资源。我一直通过将所有资产添加到app/assets来推迟解决这个问题,但现在它变得太杂乱了。

我已经阅读了文档,并尝试将以下所有行添加到我的application.rb文件中。

config.assets.paths << "#{Rails.root}/vendor/assets/*"
config.assets.paths << "#{Rails.root}/vendor/assets/fonts"
config.assets.paths << "#{Rails.root}/vendor/assets/stylesheets"
config.assets.precompile << Proc.new { |path|
  if path =~ /\.(eot|svg|ttf|woff)\z/
    true
  end

它们在本地工作,但是当我将它们推送到服务器时,我的供应商资产都不在那里。我使用Capistrano进行部署,并且我知道有一些升级问题。这可能是问题的根源,但我遵循文档来进行部署(几乎)所有内容都没问题。

2个回答

2
问题最终是我太愚蠢了,总是急于处理其他问题。我一头扎进了兔子洞里,忘记了正在发生的事情。在正则表达式中,我没有包含otf文件类型,并且它没有被包含在内。
自己打自己脸。
编辑:
澄清一下:我所要做的只是改变

if path =~ /\.(eot|svg|ttf|woff)\z/

为了

if path =~ /\.(eot|svg|ttf|woff|otf)\z/

你能分享具体的解决方案,而不是抽象的,以便新手理解吗?^^ - ahnbizcad
1
@gwho:在答案中添加了具体细节。 - Peter Klipfel

0
当你运行 rake assets:precompile 的时候,你是否手动设置了环境变量为生产环境?
命令应该是这样的: RAILS_ENV=production rake assets:precompile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接