ruby – Rails 4.1.6资产管道没有在生产中加载资产和javascript
发布时间:2020-12-17 01:57:00 所属栏目:百科 来源:网络整理
导读:我在rails web服务器上有一个 ruby,我试图在生产中部署.我无法在生产中加载资产:.css,.js和images(由于开发似乎工作正常). 这是我的production.rb Rails.application.configure do # Code is not reloaded between requests. config.cache_classes = true #
我在rails web服务器上有一个
ruby,我试图在生产中部署.我无法在生产中加载资产:.css,.js和images(由于开发似乎工作正常).
这是我的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 precompiled asset is missed. config.assets.compile = false # Generate digests for assets URLs. config.assets.digest = true end 我以前有这个相同服务器的部署版本,其标签在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 = true Rails.application.config.assets.precompile << /(^[^_/]|/[^_])[^/]*$/ 我相信这会大大降低性能,因为我不想在生产中编译.我需要纠正解决这个问题的方法.任何帮助将不胜感激! 注意:我还注意到我在/ assets / javascripts中有一个application.js,但我在/ assets / stylesheets中有一个application.css.scss – 不确定这是否会影响它 解决方法
所以它原来是一个简单的解决方案.我正在使用docker进行生产,需要将此行添加到我的Dockerfile中
RUN rake assets:precompile 这会预编译资产并添加指纹,以便在生产中提供服务.干杯! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |