这是我的production.rb
Rails.application.configure do # Code is not reloaded between requests. config.cache_classes = true # Eager load code on boot. This eager loads most of Rails and # your application in memory,allowing both threaded web servers # and those relying on copy on write to perform better. # Rake tasks automatically ignore this option for performance. config.eager_load = true # Full error reports are Disabled and caching is turned on. config.consIDer_all_requests_local = false config.action_controller.perform_caching = true config.serve_static_files = true # Compress JavaScripts and CSS. config.assets.Js_compressor = :uglifIEr # Do not fallback to assets pipeline if a @R_285_3013@ asset is missed. config.assets.compile = false # Generate digests for assets URLs. config.assets.digest = trueend
我以前有这个相同服务器的部署版本,其标签在application.HTML.erb中看起来像这样:
<head> <%= stylesheet_link_tag 'application',media: 'all','data-turbolinks-track' => true %> <%= JavaScript_include_tag 'application','data-turbolinks-track' => true %> <%= csrf_Meta_Tags %></head>
在生产中(加载CSS / Js)
<link data-turbolinks-track="true" href="/assets/application-06ed3643d0bf74fdf192f533cc269506.CSS" media="all" rel="stylesheet" /><script data-turbolinks-track="true" src="/assets/application-f134ff018deb0477bd5ad046d853559d.Js"></script>
现在部署我的应用程序时它看起来像这样(没有指纹).预编译似乎不起作用.公共/资产中没有生成文件,这是一个问题.目前我的应用程序清单看起来像这样
<link data-turbolinks-track="true" href="/stylesheets/application.CSS" media="all" rel="stylesheet" /><script data-turbolinks-track="true" src="/JavaScripts/application.Js"></script>
我认为资产管道和预编译资产存在问题.它应该生成CSS和Js的指纹版本并使用它们.即使运行rake资产:我的生产服务器上的预编译也不起作用.如何让rails使用指纹版本?
在使用某些设置时,我可以通过更改这些设置来使其工作:
config.assets.compile = trueRails.application.config.assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/
我相信这会大大降低性能,因为我不想在生产中编译.我需要纠正解决这个问题的方法.任何帮助将不胜感激!
注意:我还注意到我在/ assets / JavaScripts中有一个application.Js,但我在/ assets / stylesheets中有一个application.CSS.sCSS – 不确定这是否会影响它
解决方法 所以它原来是一个简单的解决方案.我正在使用docker进行生产,需要将此行添加到我的Dockerfile中RUN rake assets:precompile
这会预编译资产并添加指纹,以便在生产中提供服务.干杯!
总结以上是内存溢出为你收集整理的ruby – Rails 4.1.6资产管道没有在生产中加载资产和javascript全部内容,希望文章能够帮你解决ruby – Rails 4.1.6资产管道没有在生产中加载资产和javascript所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)