2

我之前一直在使用 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。

当我执行 rails c 并输入: Rails.application.config.assets.paths

它总是给我结果,就好像它是从 /assets 中选择路径一样。

任何人都可以帮我解决这个问题。谢谢。

4

3 回答 3

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 所提供的内容方面,他是最出色的。

他还继续解释了 Rails 3.1 提供的很多内容:

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

这是一个测试版视频,但它会帮助你兴奋起来,尤其是他的视频,它涵盖了 sass 和咖啡脚本。

我知道这不是您正在寻找的答案,而且似乎需要做更多的工作来遵守新标准,但这只会让未来的事情变得更容易。

于 2012-06-13T20:50:30.343 回答
1

尝试设置:

config.assets.manifest = '/path/to/some/other/location'
于 2012-06-13T19:06:24.850 回答
1

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

于 2012-06-13T19:09:28.110 回答