1

このチュートリアルを使用して静的アプリをHerokuにロードしたところ、画像が表示されないことを除いて、すべてが非常にうまく機能しています。同じサイトが(Herokuを介さずに)プレーンな静的サイトとして自分のサーバーでホストされている場合、すべてのアセットが問題なく読み込まれます。

現在、リポジトリにGemfile、Gemfile.lock、app.rb、config.ru、およびpublic(静的サイトディレクトリ)があり、Herokugit push heroku masterにプッシュするためにHerokuにロードしています。

私の画像はpublic/imgにあり、htmlから直接参照されているアセットでさえ表示されません。Chromeでfirebugliteを使用してアセットディレクトリを確認すると、画像ファイルはそこにあるように見えますが、画像データがないようです(私が知る限り)。

これ以上ruby/railsファイルはありません。どこかにproduction.rbファイルが必要ですか?私は何かを逃していますか?

現在、Herokuでのセットアップは無料パッケージです。アセットを表示するには、有料パッケージにアップグレードする必要がありますか(アセットは2MBしかありません)?「public」ディレクトリ内に「assets」ディレクトリを作成し、そこにimgディレクトリを配置しようとしましたが、それでもうまくいきません。

これが私のconfig.ruです

use Rack::Static, 
  :urls => ["/img", "/js", "/css"],
  :root => "public"

run lambda { |env|
  [
    200, 
    {
      'Content-Type'  => 'text/html', 
      'Cache-Control' => 'public, max-age=86400' 
    },
    File.open('public/index.html', File::RDONLY)
  ]
}
4

1 に答える 1

2

dynoのファイルの内容がソースのファイルの内容と一致しないと思われるこのような問題を診断するには、を使用heroku run bashしてリモートのオンオフdynoにログインします。これにより、dynoから見たファイルシステムを探索できるbashシェルに移動します(シェルが接続されているdynoは、リクエストをアクティブに処理するものではありませんが、同じファイルシステムの内容になります)。

$ heroku run bash
Running `bash` attached to terminal... up, run.4065
~ $ ls
pubic Gemfile Gemfile.lock app.rb config.ru
~ $ cd public/img
~/public/img $ ls -l
total 40
-rw------- 1 u36831 36831  2743 2013-02-15 18:54 facebook-1652d049.png
-rw------- 1 u36831 36831  2291 2013-02-15 18:54 feed-e8d78a2f.png

ここから、次のことが表示されます。

  • 画像ファイルがdynoに存在する場合
  • それらの内容が期待どおりである場合(ファイルサイズはローカル環境で表示されるものと一致しますか?)
于 2013-02-15T19:56:38.827 に答える