【发布时间】:2014-03-07 03:59:06
【问题描述】:
如何在 Rails 中拥有两个独立的编译资产文件?
例如,我想要一个 public.min.js 文件和一个 admin.min.js 文件。
【问题讨论】:
标签: javascript ruby-on-rails ruby heroku
如何在 Rails 中拥有两个独立的编译资产文件?
例如,我想要一个 public.min.js 文件和一个 admin.min.js 文件。
【问题讨论】:
标签: javascript ruby-on-rails ruby heroku
像这样构建你的应用程序:
- app
- assets
- javascripts
- admin
(all admin-facing js files go here)
- public
(all public-facing js files go here)
admin.js
public.js
- stylesheets
- admin
(all admin-facing css files go here)
- public
(all public-facing css files go here)
admin.css
public.css
在admin.js:
//= require_tree ./admin
在public.js:
//= require_tree ./public
在admin.css:
/*
*= require_directory ./admin
*/
在public.css:
/*
*= require_directory ./public
*/
在app/views/layouts/application.html.erb(或任何你的主布局文件)中:
<!-- Change this: -->
<%= stylesheet_link_tag "application", media: "all" %>
<%= javascript_include_tag "application" %>
<!-- To this: -->
<%= stylesheet_link_tag "public", media: "all" %>
<%= javascript_include_tag "public" %>
在每个面向管理员的视图中,通过某种布局或手动添加以下内容:
<%= stylesheet_link_tag "admin", media: "all" %>
<%= javascript_include_tag "admin" %>
在config/environments/production.rb 中,将此行添加到configure 块内:
config.assets.precompile += %w( public.js admin.js public.css admin.css )
【讨论】:
在您的主应用程序布局文件中(通常是:/app/views/layouts/application.whatever)
在你的 head 元素中定义 2 个单独的 js 文件。
javascript_include_tag 'public'
javascript_include_tag 'admin'
然后在您的 assets/javascripts 文件夹中创建 2 个单独的 js 文件,名为“public”和“admin”,并使用它们将您的 javascript 添加到。
【讨论】: