web-dev-qa-db-ja.com

シンプルなRailsアプリでHTML5ビデオタグを使用する

index.html.erb内に次のコードがあります

<video width="320" height="240" controls="controls">
      <source src="truffle1.mp4"/>
 Your browser does not support the video tag.
</video>

Mp4ビデオファイルをどこに置くかわからないので、いくつかの場所に置きました。
次に、Railsサーバーを起動し、Chromeを使用してインデックスページを開きます。黒いビデオフレームが表示されますが、再生されません。そして新しいウィンドウでビデオを開こうとすると、[GET] "/admin/truffle1.mp4"に一致するルートがありません(adminはコントローラーの名前だけであることに注意してください)。


これはRailsルーティングの問題...

20
delta2006

あなたが言う時 src="truffle1.mp4"あなたはRails現在のルートからそのファイルを探すように言っています(ローカルサーバーで試している場合はおそらくlocalhost:3000/adminにいるので、探していますlocalhost:3000/admin/truffle1.mp4)。

次のように、アプリのホームからのルートを指定してみてください。src="/assets/media/truffle1.mp4"、そしてそのディレクトリにファイルを置きます(おそらくそれを作成する必要があります)。

[〜#〜]編集[〜#〜]

@Pragnesh Vaghelaからの回答に続いて、私はなんとかそれを機能させることができました。あなたの最初の直感は正しかった。ビデオを/ assets/videosに入れたい場合は、ルーティングがありません。あなたが言う時:

<%= video_tag "truffle1.mp4", :size => "320x240", :controls => true %>

サーバーは、ルーティングされたすべてのアセットディレクトリ(デフォルトでは、スタイルシート、画像、JavaScript)でファイルを検索します。ビデオを画像に入れると、たとえば機能するはずです。/assets/videosディレクトリも検索する場合は、config /application.rbファイルに次の行を追加する必要があります。

config.assets.paths << "#{Rails.root}/app/assets/videos"

あなたはそれを言う行の下に置くことができます:

config.assets.enabled = true

私は信じている。

これがうまくいくことを願っています。

37
Pedro Cori

HTML5タグを作成するvideo_tagヘルパーを使用できます。ビデオファイルは、デフォルトで「public/videos」からロードされます。

<%= video_tag "truffle1.mp4", :size => "320x240", :controls => true %>
7