Ruby on rails 如何在生产rails 4中提供指纹css路径

Ruby on rails 如何在生产rails 4中提供指纹css路径,ruby-on-rails,heroku,ruby-on-rails-4,precompile,imgkit,Ruby On Rails,Heroku,Ruby On Rails 4,Precompile,Imgkit,我正在使用imgkit拍摄我的网页快照。我运行: RAILS\u ENV=production bundle exec rake assets:precompile预编译我的资产 app/assets目录的所有文件都编译到public/assets application.css编译为application-7a23a105125768e41d9d24aee4553615.css 我的控制器代码是: kit = IMGKit.new(render_to_string(:partial =&g

我正在使用
imgkit
拍摄我的网页快照。我运行:

RAILS\u ENV=production bundle exec rake assets:precompile
预编译我的资产

app/assets
目录的所有文件都编译到
public/assets

application.css
编译为
application-7a23a105125768e41d9d24aee4553615.css

我的控制器代码是:

  kit = IMGKit.new(render_to_string(:partial => 'form', :height => 200, :transparent => true, :quality => 10, :layout => false,:locals => {:project => @project}))
  #  t = kit.to_img(:png) 
  kit.stylesheets << "#{Rails.root.to_s}/public/assets/application.css"
  #file = kit.to_file(Rails.root + "public/pngs/" + "screenshot.png")
  file = kit.to_file(Rails.root + "public/assets/" + "screenshot.png")
  #send_file("#{Rails.root.to_s}/public/pngs/screenshot.png", :filename => "screenshot.png", :type => "image/png",:disposition => 'attachment',:streaming=> 'true')

您可以使用
Sprockets::Rails::Helper#asset_digest_path
,找到。由于您在控制器中,因此可以使用

self.class.helpers.asset_digest_path('application.css')
# => "application-7a23a105125768e41d9d24aee4553615.css"
类似地,
asset\u path
将生成application.css文件的路径

self.class.helpers.asset_path('application.css')
# => "/assets/application-7a23a105125768e41d9d24aee4553615.css"

为什么要在开发环境中预编译?它不会在开发中产生任何影响,您应该只在生产中这样做。正如前面提到的,我预先编译了它!!有谁能帮我克服这个
application-7a23a105125768e41d9d24aee4553615。css
application.css
不同。这样就找不到了。@scones,我知道,但如何在产品中提供指纹路径它给出了错误“没有这样的文件或目录!!”糟糕的运气如果你在生产模式下这么做会怎么样
RAILS\u ENV=production rake assets:precompile
然后
RAILS\u ENV=production RAILS console
在那里,
ApplicationController.helpers.asset\u path('application.css')
?编译资产后,您的公共/资产文件夹中是否有
application.css
文件?创建application-7a23a105125768e41d9d24aee4553615.css文件,而不是application.css,因为我正在使用rails 4plz,请在编辑的帖子中查看我的项目控制器!!如果
“#{Rails.root}/public/assets/#{self.class.helpers.asset_digest_path('application.css')}”
为您提供了css文件的正确路径,那么您应该添加
kit.stylesheets
self.class.helpers.asset_path('application.css')
# => "/assets/application-7a23a105125768e41d9d24aee4553615.css"