2

我正在尝试将 Heroku 作为我们当前 Rails 4.0.0 项目的主机。虽然这似乎是 Heroku 用户经常遇到的问题,但我发现的所有解决方案都没有对我产生任何影响。

服务器没有从我们的资产中提供我们的任何图像、css 或 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 git@heroku.com:myproject.git
   82f4d58..e930ff1  master -> master
4

1 回答 1

1

在您的生产配置文件中,您是否也尝试过设置:

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

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

此外,rails_12factor gem 设置为包含 heroku 所需的另外两个 gem,因此您不必将它们包含在 Gemfile 中。您可以在他们的github页面上获得更多信息。

但是,无论出于何种原因,我总是必须确保使用 rails image_tag 来让我的图像在生产中显示。不确定您是否正在这样做,但这对我的应用程序产生了很大影响。

希望这可以帮助!

于 2013-07-22T12:49:25.273 回答