如何制作rake资产:将构建预编译到正确的位置?

时间:2012-11-13 04:58:16

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

我正在将我的Rails 3应用程序部署到我的托管服务的子目录sapa。要点击/sapa子目录,我向routes.rb添加了一个范围,但这使得应用程序在/assets(不是我的应用程序的一部分)中查找.js和.css而不是/sapa/assets(我对assets感到非常满意,但由于某种原因,它并没有这样做)。因此,我在scope中使用routes.rb语句,在config.assets.prefix中使用application.rb

不幸的是,这导致我的rake assets:precompile构建为public/sapa/assets而不是public/assets。我可以将文件复制到正确的位置,一切正常,但我希望有人告诉我一个更好的方法(一个必须存在,对吗?)。我可以获得相对资产路径(即没有初始/)或者可能采用更标准的方式来实现我想要的东西,以便铁路理解吗?

/config/application.rb

  config.assets.prefix = "/sapa/assets"

/config/routes.rb

scope "sapa" do
  …
end

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据定义(请参阅Configuring Rails),config.assets.prefix配置似乎用于定义投放资产的位置。

config.assets.prefix defines the prefix where assets are served from. Defaults to /assets.

你能解释一下,是否有理由将“/ sapa / assets”放入config.assets.prefix变量?或许您正在寻找config.assets.paths配置变量?

config.assets.paths contains the paths which are used to look for assets. Appending paths to this configuration option will cause those paths to be used in the search for assets.