ruby on rails 3.2将默认资产路径从/ asset更改为其他目录

时间:2012-06-13 18:52:48

标签: ruby-on-rails asset-pipeline

我之前一直在使用rails 3.0.9,并试图转移到相同项目的rails 3.2。 我在Gem文件中添加了以下内容:

  gem 'rails', '3.2.3'

  gem 'nokogiri'

  gem 'rack', "~>1.1"

  group :assets do

  gem 'sass-rails', "~> 3.2.3"

  gem 'coffee-rails', "~> 3.2.1"

  gem 'uglifier', '>=1.0.3'

  end

我在applcation.rb

中添加了以下内容
config.assets.enabled = true                 
config.assets.version = '1.0'                                
config.assets.prefix = "/public"

我更改了前缀,因为在项目中我将所有的javascript和样式表放在公共文件夹中。

但不知何故,前缀的更改不起作用。它总是选择路径为/ assets。

当我做导轨c 并输入: Rails.application.config.assets.paths

它总是给我结果,好像它正在从/ assets中选择路径。

任何人都可以帮助我。 感谢。

3 个答案:

答案 0 :(得分:1)

尝试设置:

config.assets.manifest = '/path/to/some/other/location'

答案 1 :(得分:1)

设置config.assets.prefix只是告诉sprokets存储预编译资产的位置。默认情况下,这是public/assets。我认为您尝试做的是更改搜索路径(sprokets查找原始资产的位置)。通常,您可以使用config.assets.paths << Rails.root.join("app", "assets", "special")添加到搜索路径中。但@Zajn是正确的,您应该将您的原始资产放在app / assets中以符合rails资产管道约定。

答案 2 :(得分:1)

我同意Zajin在你的问题的评论中。符合新的开始不仅会大声晃动,而且在生产中运行时会使很多事情变得更容易。

我强烈推荐观看这些精彩的Railscasts.com视频:

http://railscasts.com/episodes/282-upgrading-to-rails-3-1

http://railscasts.com/episodes/318-upgrading-to-rails-3-2

用于升级到3.1然后升级到3.2,因此首先要观察它们,然后遵循它们以符合新标准。当看到新版本的铁轨提供什么时,他是最好的。

他还接着解释了很多rails 3.1在这里提供的内容:

http://railscasts.com/episodes/265-rails-3-1-overview

它是一个测试版视频,但它会帮助你兴奋,特别是他的视频超过sass和咖啡脚本。

我知道这不是你要找的答案,看起来更符合更新的标准,但它只会让事情变得更容易。