Rails 5生产资产管道CSS未呈现

Posted

技术标签:

【中文标题】Rails 5生产资产管道CSS未呈现【英文标题】:Rails 5 Production asset pipeline CSS not rendering 【发布时间】:2017-01-24 05:07:49 【问题描述】:

我有一个在 ec2 实例上运行的 rails 5 webapp。我有 nginx 成功代理它。 Nginx 正在提供我的样式表,但它们只是拒绝在页面上呈现。

我正在使用三个应该可以帮助我的 gem(它们在开发模式下完美运行):

// app/assets/stylesheets/application.css.scss

@import "jquery-ui";
@import "dataTables/jquery.dataTables";
@import "bootstrap-sprockets";
@import "bootstrap";

Rails 资产管道编译我的 CSS,capistrano 将其部署到 public/assets/css 文件夹,我可以从日志文件中看到 nginx 正在为其提供服务:

173.0.0.0 - - [24/Jan/2017:04:46:02 +0000] "GET /assets/application-4b2406f6ce6b47c29d7764376731b4a5862e841c272f0f6407f9e03fc6840986.css HTTP/1.1" 304 0 "http://54.0.0.0/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/55.0.2883.95 Safari/537.36"

这是我的 config/environments/production.rb 的 sn-p:

config.action_controller.perform_caching = true
config.action_mailer.perform_caching = false
config.active_record.dump_schema_after_migration = false
config.assets.compile = true
config.assets.js_compressor = :uglifier
config.assets.quiet = false
config.cache_classes = true
config.consider_all_requests_local       = false
config.public_file_server.enabled = false

但页面以 NO css 呈现,并且在 Chrome 中看起来非常简单。太令人沮丧了!

这里是关键:它在 Firefox 中看起来不错。

问题: 如何调试这个?使用什么工具?

【问题讨论】:

会不会是缓存相关的?您可以使用开发者工具或扩展程序禁用 Chrome 中的缓存。 【参考方案1】:

呸。麦克斯完全正确。另一台计算机上的 Chrome 也可以。我将清除昨晚使用的计算机上的缓存,我很确定它会起作用。

谢谢麦克斯!投了赞成票。

【讨论】:

以上是关于Rails 5生产资产管道CSS未呈现的主要内容,如果未能解决你的问题,请参考以下文章

使用 Rails 3.1 资产管道有条件地使用某些 css

无法将凉亭组件 css 添加到 Rails 4.2 中的资产管道中

Rails 5 - 如何在资产管道中包含所有供应商资产?

Rails 3.1 资产管道 - 为啥我的图像没有为生产进行预编译?

Rails:application.css 不在资产管道中

开发中的 rails 3.1 资产管道 css 缓存