在Rails 3.2中添加两个不同的资产路径

时间:2013-01-09 06:03:15

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

我喜欢在rails 3应用程序中使用两个不同的资源文件夹。我喜欢从app / assets /以及public / template / style1提供服务。


- app
   - assets
     - javascripts
     - stylesheets
       - **styles.css**
     - images
   - controllers
   - models
   - ----
- public
 - template
   - style1
     - js
     - css
       - **theme.css**
     - img

布局文件

<%= stylesheet_link_tag "styles", :media => 'screen' %>

在同一页面中使用iframe喜欢使用来自public / template / style1 / css / theme.css的样式

<link href="/template/style1/css/theme.css" media="screen" rel="stylesheet" type="text/css" />

在production.rb中添加了

config.assets.precompile += %w(styles.css)
config.assets.paths << "#{Rails.root}/public/template/style1/css"
config.assets.precompile += %w(theme.css)

我运行rake资产:预编译,在浏览器中没有发生任何变化。请帮我解决。

1 个答案:

答案 0 :(得分:0)

我认为你对theme.css文件的引用是不对的。如果您在production.rb添加路径"#{Rails.root}/public/template/style1/css"时说明,则应该像这样引用其中的内容:

<link href="theme.css" media="screen" rel="stylesheet" type="text/css" />

您可以考虑坚持关于资产管道的“约定”:将您的资产放在assets目录中。

还有一个细微的细节:如果你想让资产资源管理资产资源,你只需在application.css文件中说明,如:

 *= require theme