【发布时间】:2023-03-08 09:49:01
【问题描述】:
浏览器通过直接输入浏览器的 url 加载 Rails 应用程序与通过链接访问同一页面的方式有区别吗?
当用户首次访问该站点时,我的应用程序的主页(文件:streets\show.html.erb --- 见下文)会播放一段视频 (15MB *.MOV)。但是,如果用户在应用程序的其他位置导航,然后通过单击“主页”链接(指向 root_path)返回主页,页面将加载但视频不会播放(实际上,它几乎就像页面找不到文件)。但是,如果用户刷新浏览器或通过浏览器的 url 访问页面,视频就会播放。代码如下:
Route.rb 文件包含:
root 'streets#show'
venues_controller.rb 文件包含:
class StreetsController < ApplicationController
def show
@street = Street.find(1)
end
end
streets\show.html.erb 文件包含:
<div class="video_pane">
<%= video_tag(@street.video_link+".MOV", :controls => true, :autobuffer => true) %>
</div>
".video_link" 上面是我模型中的一个属性,用于存储视频文件的名称。查看 Rails 生成的源代码,html 正在传递视频文件的正确名称和路径:
HTML 源代码:
<div class="video_pane">
*.MOV 文件大小为 15MB,存储在“public/videos”文件夹中。我正在使用 Chrome。谢谢!
【问题讨论】:
-
你有演示链接可以给我们看吗?
-
实际上,我向 Heroku 的人询问了这个问题,他们建议我使用 Amazon S3 或 Cloudfront 来存储媒体,因为将这种大小的文件放在 assets 文件夹中会非常低效(即增加蛞蝓大小等)
标签: ruby-on-rails url video hyperlink