Rails生产资产预编译,但在浏览器中显示为空白

时间:2015-07-01 03:26:25

标签: ruby-on-rails ruby asset-pipeline

当我rake assets:precompile进行制作时,Sass和JS文件都被正确编译,我可以在public / assets文件夹中看到它们。 然而,当我尝试在Web浏览器上运行应用程序并进行查看时,它将显示为404. 文件名与public / assets文件夹中的已编译文件相匹配。就像Dev提出的所有其他SO问题一样,Dev上的一切都运行正常。

404 Error

这是我原来的 application.scss

@import 'materialize/components/_color';
@import 'materialize/components/variables';
@import 'materialize';
@import url(https://fonts.googleapis.com/icon?family=Material+Icons);

.icon-block {
  padding: 0 15px;
}

.icon-block .material-icons {
  font-size: inherit;
}

和原始 application.js

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require materialize-sprockets
//= require_tree .

我在Windows上进行开发,部署到Ubuntu服务器进行生产。 Rails的新手,但我想做得对!

2 个答案:

答案 0 :(得分:1)

针对未来的Google员工- 如今,“ serve_static_files”不起作用。改为: config.public_file_server.enabled = true 有关更多帮助,请参见指南:here

答案 1 :(得分:0)

我在config / environments / production.rb中设置了config.serve_static_files = true并修复了它。我可能不得不摆弄它,以便以后可能成为NGINX服务器,但它可以在本地工作。