Heroku不提供资产中的文件

时间:2013-07-21 21:41:26

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

我正在尝试将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

1 个答案:

答案 0 :(得分: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来生成我的图像。不确定你是否这样做,但它对我的应用程序产生了很大的影响。

希望这有帮助!