Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3.1资产管道-为什么我的映像不为生产进行预编译?_Ruby On Rails_Ruby On Rails 3.1_Asset Pipeline - Fatal编程技术网

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中的更改将强制浏览器获取新副本(更改后)