2014-09-01 128 views
0

在我的Rails应用程序中,我有每个操作都独有的css和js。Heroku不从资产管道加载资产

因此,用户#新有它自己的CSS。它的名字是users_new.css.scss

我将我的应用程序部署到Heroku,并且Heroku不加载任何资产。您可以看到错误here。我如何解决这个问题,使Heroku正确地预编译和加载资源?

我通过Heroku's docs on using the asset pipeline阅读,但没有看到任何解决方案。

+0

你有(宝石“rails_12factor”,组:生产“)在你的Gemfile? – 2014-09-01 06:06:46

+0

这将做到这一点,谢谢:) – 2014-09-01 06:10:10

+0

张贴它作为答案,以便其他程序员可能从中受益它 – 2014-09-01 06:13:13

回答

1

预编译

的问题是你的timelines_index.jsprecompiled

enter image description here

你可以告诉的方式,这是一个问题当您拨打中的资产时210(我认为你正在使用正确的路径帮助程序),Rails将自动引用该文件的最新预编译版本(因此application.js为何具有附加的MD5 fingerprint

我相信您需要添加自定义文件到您的precompiled_assets阵列:

#config/environments/production.rb 
Rails.application.config.assets.precompile += ['timelines_index.js'] 

这将给Rails的单独预编译这些资产的能力,让你打电话给他们在你的布局:

#app/views/layouts/application.html.erb 
<%= javascript_include_tag "timelines_index" %> 

这个Wi必须完成所有您希望在布局中调用的自定义资产文件。


Manifest

正如Anil提到的,你不妨用Rails的manifest系统所有的资源文件连接成各自的application文件。

这将撤销需要将文件追加到Rails的precompile阵列,让您调用单个文件为您的各种资产:

#app/assets/javascripts/application.js 
//= require_tree . 
0

添加在您的Gemfile

gem 'rails_12factor', group: :production 
+0

实际上看起来像页面特定的资产仍未被加载 – 2014-09-01 06:55:44

+0

在生产模式下,集将编译在application.js文件中 – 2014-09-01 06:58:51

+0

donot尝试显式加载css和js – 2014-09-01 07:00:28