1

Rails 新手:我有一个 rails 应用程序,我想使用 html5 视频标签将视频放在一两个页面上。我目前正在使用 Rails 3.2 和 Heroku 的 cedar 堆栈来部署我的应用程序。将我的应用程序部署到 Heroku 时遇到问题。

我已将我的 .mp4 视频放在public/videos中,并且在运行 rails 的本地服务器时,一切正常。

但是,当我部署到 heroku 时,包含这些视频的页面无法加载,即“我们很抱歉,但出了点问题”。检查日志

heroku logs

显示此错误

ActionView::Template::Error (car_circle.mp4 isn't precompiled)

这并不奇怪,因为似乎公用文件夹不包含在 rails 3.2 资产管道中,因此其中的所有内容都没有得到预编译。

如果我的推理是正确的,我想知道如何将公共/视频包含在我的资产管道中,以便可以预编译这些视频。或者,如果我不应该将这些视频放在 /public 中,关于如何正确地将它们移入资产管道的一些指导也会很棒。

希望我已经为大家提供了足够的信息来帮助我。谢谢。

4

1 回答 1

1

添加

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

config/application.rb允许将文件夹 /public/videos 添加到资产管道中。这允许加载包含视频的页面,但是该页面仍然无法正确加载视频。

这将路径附加到资产管道。可以通过打开 rails 控制台查看资产管道中的路径,然后键入:

Rails.application.config.assets.paths

您可能会遇到这样的列表:

 => ["/Users/someuser/Documents/Rails/some_app/app/assets/images", 
"/Users/someuser/Documents/some_app/app/assets/javascripts",...,
/Users/someuser/Documents/some_app/public/videos"]
于 2012-10-01T12:30:30.460 回答