ruby – Rails 4.1.6资产管道没有在生产中加载资产和javascript

ruby – Rails 4.1.6资产管道没有在生产中加载资产和javascript,第1张

概述我在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 @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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1265054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存