7

Rails (v2.3.8) アプリには、/public/myfile.kml に配置した静的リソース ファイルがあります。特別な routes.rb 設定は必要ありませんか?

http://localhost:3000/myfile.kmlで問題なく動作します

(パッセンジャーに) デプロイすると、http://myserver/myappname/myfile.kmlに表示されます

これまでのところすべて順調です...

このファイルを参照する必要がある JavaScript を吐き出すビュー (erb ファイル) があります。出力は、ローカルホストでは「/myfile.kml」、本番環境では「/myappname/myfile.kml」、または上記の完全な URL、または「../../」を少し含む相対 URL である必要があります。 ../' (RESTful URL では扱いにくい)。

<%=url_for 'myfile.kml'%> のようなことができるはずですか?

または「<%=ROOT_URL%>/myfile.kml」

この質問に対する非常に簡単な答えがあることは知っていますが、正直なところ、それを見つけることができませんでした。「root_url」について話している人がかなりいますが、それは何ですか? ビューで参照できる変数は? 未定義です。

4

6 に答える 6

2
'<%= ENV["RAILS_RELATIVE_URL_ROOT"] %>/myfile.kml'
于 2010-11-25T19:23:08.167 に答える
2

Rails 2.3.8 についてはわかりませんが、Rails 3 では、この値のデフォルトは false です。

編集config/environments/production.rbして設定:

config.serve_static_assets = true

また、静的リソース (ファビコン) にリンクするためのヘルパーを示すブログ投稿があります http://ilconnettivo.wordpress.com/2008/07/28/favicon-on-rails/

于 2010-11-25T18:41:23.923 に答える
2

<%= RAILS_ROOT + "/public/myfile.kml" %>

于 2010-11-25T20:34:33.490 に答える
1

を調べると、ビューで使用rake routesするヘルパーが明らかになりroot_pathます。たとえば、<%= root_path + 'myfile.kml' %>デフォルトでは、Rails アプリケーションの public/ の下にあるファイルにマップされます。

于 2013-09-24T22:35:46.220 に答える
0

最新 (>2.3.6) は Rails.root です。http://joneslee85.wordpress.com/2010/05/27/the-dilemma-of-rails-root-vs-rails_root-complex/ を参照してください

于 2010-11-25T18:43:38.920 に答える
0

実稼働環境をローカルに複製してみませんか? Web サーバーはあまりリソー​​スを消費しないため、ここで見られるようなエコシステム構成の問題を解決するのに役立ちます。

于 2010-11-26T05:40:43.813 に答える