2014-01-10 16 views
13

簡単な質問は残念ですが、どこでも適切な修正が見つかりません。Rails 4静的public index.html

以前はpublic/index.htmlの簡単なランディングページでRails 3.xアプリを実行していましたが、もちろん、私がRails 4に更新したとき、インデックスページはもはや表示されません。その機能を元に戻す方法はありますか?

私はwelcome#indexコントローラ/ルートを作成し、index.htmlを応答としてレンダリングできることがわかりました。 しかし、それは以前の静的なページをレンダリングして、公開されていたすべての画像とCSSの資産がなく、別のフォルダに移動します。

ヒント?

+0

ルートファイルのルートパスをポイントに設定できます歓迎#index – kobaltz

+0

ねえ。あなたはそれを解決しましたか?私はhttp://blog.benmorgan.io/post/77446075979/setting-up-an-angularjs-app-with-a-rails-apiで '/'を使うと、:redirect( '/')プロダクション(heroku)ではループリダイレクトについて何か言います – fabricioflores

+0

あなたはそれを解決しましたか? * 2。 – baash05

答えて

20

コントローラを使用する必要がありますが、既存のファイルを指すだけです。

root :to => 'welcome#index' 

そしてようこそコントローラでroutes.rbを

に:

def index 
    render :file => 'public/index.html' 
end 

はまた、あなたがそのファイル自体を提供するようにApacheを設定することができます。 Railsがそれをやり遂げるのは簡単だと思われる!

+0

はそのレンダリングうん、私はでした: 問題のindex.htmlファイルは、彼らが/パブリックフォルダにもあるため、すべての資産のファイルがロードされないことです。 私が代わりにindex.htmlファイル(パブリックフォルダ)のRails 3は前に行った方法をレンダリングする方法をしたいと思います。 –

+4

アップグレードは私の生産性を殺すとき、私は大好きです:) – baash05

7

public/index.htmlを配置し、config/routes.rbからルートディレクティブを削除することは私の仕事です。

$ rails --version 
$ Rails 4.2.0 
+0

のRails 4.2.0 –

+2

にあまりにも私のために働いたがRails5に私のため –

+0

@PeterSankauskasワークス:(かかわら5.0 Railsの上で動作していないよう –

0

だけpublic/index.htmlを追加することの問題点は、/のルートパスが存在しない限り、インデックス・ページがレンダリングされないことです。例えば

、アプリケーションがサブURIにホストされている場合、「http://example.com/my-app/index.htmlにヒットするが、「http://example.com/my-app」(末尾/)ではないことがあります。これはWebサーバーの設定ではおそらく修正できますが、それを制御できない場合は

root to: redirect('index.html') 
関連する問題