Ruby on rails Rails 3.1资产管道-为什么我的映像不为生产进行预编译?
运行时:Ruby on rails Rails 3.1资产管道-为什么我的映像不为生产进行预编译?,ruby-on-rails,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails,Ruby On Rails 3.1,Asset Pipeline,运行时: rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets 所有内容都将预编译,但我的/app/assets/images/* 我甚至试着把它添加到我的环境/production.rb config.assets.paths << "#{Rails.root}/app/assets/images" config.assets.precompile += %w[*.png *.jpg *.jpeg
rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
所有内容都将预编译,但我的/app/assets/images/*
我甚至试着把它添加到我的环境/production.rb
config.assets.paths << "#{Rails.root}/app/assets/images"
config.assets.precompile += %w[*.png *.jpg *.jpeg *.gif]
config.assets.path对服务器使用以下格式:
rails assets:precompile:all -e production
找到解决方案:添加到环境/生产.rb
config.assets.paths << "#{Rails.root}/app/assets/images"
config.assets.precompile += %w[*.png *.jpg *.jpeg *.gif]
为什么这不是默认值;ike这行代码说:(application.js、application.css和所有非js/css都已添加)你的意思是rake资产:预编译:全部
?尝试“rails资产:预编译-e production”不需要使用assets:precompile指定环境,默认情况下它是生产的。简要说明:rake资产:预编译:全部不会生成我资产的哈希(指纹)版本。出于这个原因,我重新使用rake资产:precompile找到了一个解决方案:添加到environment/production.rb
config.assets.precompile+=%w[*.png*.jp?g*.gif]为什么不是默认值;ike这句话说:(application.js、application.css和所有非js/css都已添加)
*.jp?g不起作用-是吗?完全匹配1个字符,因为它是全局匹配而不是regexp。你想要的是config.assets.precompile+=%w[*.png*.jpg*.jpeg*.gif]
是的,我明白了,感谢它的价值,我以为我也遇到了类似的问题,但在花了很多小时学习了更多关于资产管道如何工作的细节之后,我发现传递给我的image_标记助手的参数中有一个语法错误!至少在Rails 3.2.8中,没有必要更改环境文件中的任何默认值。*.jp?g不起作用-是吗?完全匹配1个字符,因为它是全局匹配而不是regexp。您需要的是config.assets.precompile+=%w[*.png*.jpg*.jpeg*.gif]
发现这是Rails 4中的一个问题。当我们将资产目录移动到/assets而不是/app/assets时,我们为什么要“预编译”图像?我看不出对其他来到这里的人这样做有任何意义,在Rails 5中,它应该是Rails.application.config.assets.precompile+=%w(*.png*.jpg*.jpeg*.gif)
在您的config/initializer/assets
folder@divideByZero例如,要添加md5指纹,假设您有一些logo.png或default.png图像,当您更改它们时,它们的md5散列也将更改,并且生成的图像URL中的更改将强制浏览器获取新副本(更改后)