【发布时间】:2017-03-16 13:56:07
【问题描述】:
我正在运行我的 Gemfile 中指定的 Rails 5 应用程序 Ruby 2.4。我已经阅读了 Heroku 资产管道文章,并按照我认为应该执行的步骤完成了这些步骤。
在 config/environments/production.rb 中:
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass
config.assets.compile = true
在 /config/assets 中,我有以下几行:
Rails.application.config.serve_static_assets = true
Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.precompile += %w( customers.js )
customers.js 是我在页面顶部特别包含的唯一文件,Rails 要求我对其进行预编译..
在使用 git 部署到 Heroku 之前,我运行了这个命令:
RAILS_ENV=production bundle exec rake assets:precompile
如果您转到https://crateu.herokuapp.com,您会看到样式表没有正确处理导航(我正在使用 Materialize gem)。让我感到困惑的是,javascript 正在为下拉项目工作。处理导航的样式在 application.sass 中,并且包含该文件 - 它只是不起作用。
如果您访问一个无效的 URL,例如 https://crateu.herokuapp.com/badurl,一切看起来都应该是这样。
我有 //= require_tree 。在 application.js 中,当我在本地查看源代码时,我看到了管道中的所有文件,并且一切都正确呈现。我将该源复制并粘贴到 /public 中的 404.html 中,这就是该页面正确呈现的原因。当我在 herokuapp 上查看源代码时,这些资源都没有包含在标题中。我敢肯定这很简单,是我想念的某个地方的设置。也许我需要在这一行中包含所有内容,而不仅仅是customers.js?
Rails.application.config.assets.precompile += %w( customers.js )
我已经尝试了我能想到的一切。任何帮助将不胜感激。
【问题讨论】:
-
你把它加入了correctly吗?您的资产组中的
Gemfile中有uglifier吗? -
您好,非常感谢您的评论。不,我在资产组的 Gemfile 中没有 uglifier。那会是什么样子?抱歉,这是我第一次听说。
标签: ruby-on-rails ruby git heroku