Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails test.mp3未在rails应用程序中预编译_Ruby On Rails_Ruby On Rails 3_Heroku - Fatal编程技术网

Ruby on rails test.mp3未在rails应用程序中预编译

Ruby on rails test.mp3未在rails应用程序中预编译,ruby-on-rails,ruby-on-rails-3,heroku,Ruby On Rails,Ruby On Rails 3,Heroku,我正在建立一个使用html5音频标签的网站。在我看来,我已经添加了true%>,这在开发中非常有效。但是,当我将我的应用部署到Heroku并尝试访问它时,我在日志“ActionView::Template::error(test.mp3未预编译)”中发现此错误 如何解决此问题?请尝试指定: config.assets.compile = true 在production.rb文件中 另一个解决方案是在推送到herokurepo之前对资产进行预编译: rake assets:precompil

我正在建立一个使用html5音频标签的网站。在我看来,我已经添加了true%>,这在开发中非常有效。但是,当我将我的应用部署到Heroku并尝试访问它时,我在日志“ActionView::Template::error(test.mp3未预编译)”中发现此错误


如何解决此问题?

请尝试指定:

config.assets.compile = true
production.rb
文件中


另一个解决方案是在推送到herokurepo之前对资产进行预编译:

rake assets:precompile
git commit add .
git commit -a -m "Assets are precompiled"
git push heroku master

我现在无法测试它,但它应该可以工作。

在生产环境中,存储在assets目录中的所有文件都是预编译的。当您使用rails标记帮助程序(如audio_tag asset pipeline)时,管道希望您的资产位于其中一个资产目录中。要使用它,您可以使用原始html标记:

<audio src="/audios/test.mp3" />

此文件在您的应用程序结构中的位置?这是可行的,但我想知道这是否是唯一的出路,因为rails guides文档声明-->“此模式使用更多内存,性能比默认模式更差,不推荐使用。”@General_9我在回答中又添加了一种方法。请禁用
config.assets.compile
并检查它。