您可以創建兩個清單文件(而不是使用默認的application.js
/application.scss
),包括他們在不同的佈局(一個爲front
,一個用於admin
)。
例如,你可以使用此文件夾結構:
assets
- javascripts
-- admin
-- front
- stylesheets
-- admin
-- front
- admin.scss
- front.scss
內每個管理/前面的文件夾,您可以添加特定的樣式/腳本需要的,然後確保你的清單文件看起來像這樣(只顯示風格艙單,同樣適用於腳本):
admin.scss
/*
* Manifest file for admin styles, to be compiled into admin.scss
*
*= require_self
*= require_tree ./admin
*/
front.scss
/*
* Manifest file for front styles, to be compiled into front.scss
*
*= require_self
*= require_tree ./front
*/
現在,你必須創建佈局(在app/views/layouts
):
admin.html.erb
<!DOCTYPE html>
<html>
<head>
... title and metas
<%= stylesheet_link_tag 'admin', media: 'all' %>
<%= javascript_include_tag 'admin' %>
</head>
<body>
... layout content
</body>
<html>
front.html.erb
<!DOCTYPE html>
<html>
<head>
... title and metas
<%= stylesheet_link_tag 'front', media: 'all' %>
<%= javascript_include_tag 'front' %>
</head>
<body>
... layout content
</body>
<html>
最後,必須添加清單文件config/initializers/assets.rb
需要預編譯:
... some code
Rails.application.config.assets.precompile += %w(admin.scss front.scss)
Rails.application.config.assets.precompile += %w(admin.js front.js)
現在您只需在渲染視圖時使用所需的佈局(admin.html.erb
或front.html.erb
) 。
可能不是最乾淨的方式,但您始終可以使用兩種不同的佈局並以此方式引用必要的資源。 –