2013-07-21 56 views
2

我试图将Heroku作为我们当前的Rails 4.0.0项目的主机。尽管这对Heroku用户来说似乎是一个常见问题,但我发现的解决方案中没有任何解决方案对我有所帮助。Heroku不提供资产文件

服务器没有提供我们资产中的任何图像,C​​SS或js。

我已经尝试添加宝石:

gem 'rails_log_stdout',   github: 'heroku/rails_log_stdout' 
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets' 
gem 'rails_12factor' 

production.rb来设置的配置选项:

config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" 
config.serve_static_assets = true 
config.assets.initialize_on_precompile = false 

以各种组合,但服务器仍然不会加载任何资产。

要清楚,并且万一我错过了任何简单的事情,我正在进行这些更改,将代码提交给GitHub,然后执行git push staging master。我的开发机器是Windows 8机器。

编辑 下面是执行git push staging master输出:

Counting objects: 11, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (6/6), done. 
Writing objects: 100% (6/6), 569 bytes, done. 
Total 6 (delta 4), reused 0 (delta 0) 

-----> Ruby/Rails app detected 
-----> Using Ruby version: ruby-2.0.0 
-----> Installing dependencies using Bundler version 1.3.2 
     Running: bundle install --without development:test --path vendor/bundle - 
-binstubs vendor/bundle/bin 
     Updating git://github.com/milgner/compass-rails.git 
     Fetching gem metadata from https://rubygems.org/.......... 
     Fetching gem metadata from https://rubygems.org/.. 
     Resolving dependencies... 
     Using rake (10.1.0) 
     Using i18n (0.6.4) 
     Using minitest (4.7.5) 
     Using multi_json (1.7.7) 
     Using atomic (1.1.10) 
     Using thread_safe (0.1.0) 
     Using tzinfo (0.3.37) 
     Using activesupport (4.0.0) 
     Using builder (3.1.4) 
     Using erubis (2.7.0) 
     Using rack (1.5.2) 
     Using rack-test (0.6.2) 
     Using actionpack (4.0.0) 
     Using mime-types (1.23) 
     Using polyglot (0.3.3) 
     Using treetop (1.4.14) 
     Using mail (2.5.4) 
     Using actionmailer (4.0.0) 
     Using activemodel (4.0.0) 
     Using activerecord-deprecated_finders (1.0.3) 
     Using arel (4.0.0) 
     Using activerecord (4.0.0) 
     Using bundler (1.3.2) 
     Using chunky_png (1.2.8) 
     Using coffee-script-source (1.6.3) 
     Using execjs (1.4.0) 
     Using coffee-script (2.2.0) 
     Using thor (0.18.1) 
     Using railties (4.0.0) 
     Using coffee-rails (4.0.0) 
     Using fssm (0.2.10) 
     Using sass (3.2.9) 
     Using compass (0.12.2) 
     Using compass-rails (1.0.3) from git://github.com/milgner/compass-rails.g 
it (at 1749c06) 
     Using hike (1.2.3) 
     Using jbuilder (1.4.2) 
     Using jquery-rails (3.0.4) 
     Using json (1.8.0) 
     Using modernizr-rails (2.6.2.3) 
     Using pg (0.15.1) 
     Using tilt (1.4.1) 
     Using sprockets (2.10.0) 
     Using sprockets-rails (2.0.0) 
     Using rails (4.0.0) 
     Using rails_serve_static_assets (0.0.1) 
     Using rails_stdout_logging (0.0.1) 
     Using rails_12factor (0.0.2) 
     Using rdoc (3.12.2) 
     Using sass-rails (4.0.0) 
     Using sdoc (0.3.20) 
     Using turbolinks (1.3.0) 
     Using uglifier (2.1.2) 
     Using zurb-foundation (4.0.9) 
     Your bundle is complete! It was installed into ./vendor/bundle 
     Cleaning up the bundler cache. 
     Removing rails_log_stdout (01b5bcc572e3) 
     Removing rails3_serve_static_assets (84910ceb4ca2) 
-----> Writing config/database.yml to read from DATABASE_URL 
-----> Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     Asset precompilation completed (13.42s) 
     Cleaning assets 
-----> WARNINGS: 
     Removing `Gemfile.lock` because it was generated on Windows. 
     Bundler will do a full resolve so native gems are handled properly. 
     This may result in unexpected gem versions being used in your app. 
-----> Discovering process types 
     Procfile declares types  -> (none) 
     Default types for Ruby/Rails -> console, rake, web, worker 

-----> Compiled slug size: 37.0MB 
-----> Launching... done, v16 
     http://myproject.herokuapp.com deployed to Heroku 

To [email protected]:myproject.git 
    82f4d58..e930ff1 master -> master 
+0

请从'git push heroku'添加日志。 –

+0

已添加。谢谢@MichaelSzyndel – Godwin

+0

好吧,所以编译进行,如果你真的设置'config.serve_static_assets = true'?这是默认的错误,我认为应该保持这种方式。 –

回答

1

在您的生产配置文件,你也尝试设置:

config.assets.compile = true 
config.assets.digest = true 

config.assets.initialize_on_precompile线已被删除,是不需要在Rails 4中。

另外,rails_12factor gem是s等等,以包括heroku所需的其他两个宝石,所以你不必将它们包含在你的Gemfile中。你可以在他们的github页面上获得更多的信息。

不管出于什么原因,我总是不得不确保使用rails image_tag来让我的图像在生产中显示。不知道你是否这样做,但它对我的应用产生了很大的影响。

希望这会有所帮助!

+0

谢谢,但没有。 'config.assets.compile'被设置为'false',但将其改为'true'没有效果。啊。 – Godwin

+0

无赖。这两条线为我做了诀窍。出于好奇,我只注意到你正在推进一个分期环境,而不是生产。您是否在staging.rb环境文件中进行了所有讨论的更改? – oolong

+0

不,我没有,我不知道我需要一个,我一直在使用我的'production.rb'。这肯定是原因,但我必须在今晚晚些时候放弃。谢谢! – Godwin

相关问题