0

page#indexを指すルートURIに移動すると画像を表示するシンプルなアプリがあります。写真はこのようにうまく機能しますが、/ page/indexに移動すると写真が壊れます。これの原因は何ですか?

ルート.rb

root :to => "page#index"
match ':controller(/:action(/:id))(.:format)'

ソースを表示して/page/ indexの画像をクリックしようとすると、次のようになります。

Unknown action

The action 'assets' could not be found for PageController

入れても

match ':controller(/:action(/:id))(.:format)' 

root :to => "page#index"

それでも画像はレンダリングされません。

編集:コントローラーエラーが発生したため。これが私のpage_controller.rbです

class PageController < ApplicationController
  def index
    render "index"
  end
end
4

1 に答える 1

1

あは。その<img>タグは、代わりに次のようになります。

<img id="email" src="/assets/email.png" alt="Contact" />

src属性の先頭にあるスラッシュに注意してください。スラッシュを使用すると、ブラウザは常に次の場所から画像を取得しようとします。

http://my.web.site/assets/email.png

ただし、これがないと、相対パスが取得されるため、ブラウザは次のパスを取得しようとします。

http://my.web.site/the/current/page/assets/email.png

存在しません。現在のページがルートURLでない限り、それがその1つの状況で機能する理由です。

お役に立てば幸いです。

于 2013-01-06T21:14:20.523 に答える