Rails 3.1资产:预编译任务失败,出现“错误的URI”错误

时间:2011-09-29 05:32:23

标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline

以下是rake assets:precompile --trace

的完整错误
** Invoke assets:precompile (first_time)
** Execute assets:precompile
rake aborted!
bad URI(is not URI?): 

Tasks: TOP => environment

没什么可继续的。

2 个答案:

答案 0 :(得分:2)

原来主要是用户错误,而且我对如何调用/ environment文件缺乏了解。我有一个部分来解析来自Heroku的CLOUDANT_URL环境变量,当然在预编译阶段不可用。这可能对我来说应该更加明显。

我把它移到一个单独的初始化器中,它有一个if Rails.env.production?块包裹它。我希望这是处理这个问题的合理方法。

感谢大家的帮助。

答案 1 :(得分:0)

此消息很可能是因为您的某个资产路径或名称中包含非法字符。非法,我指的是需要编码以在URL中使用的字符。

我原以为Rails会这样做,但是如果不深入研究代码我就不能肯定。

查看文件名中的空格和扩展字符等内容,看看删除它们是否解决了问题。

如果是这种情况,您可以使用方法URI.encode(string)对这些进行编码。