我正在从webarch template开始开发一个rails应用程序。我知道在public /文件夹中添加整个assets文件夹会将资产与我的视图链接起来,但它不会利用资产管道功能。该模板有很多插件和不同的选项,一个通常不使用所有。资产文件夹的大小为30MB。
我将它放在供应商/资产中并将其与资产管道一起使用,但这会产生两个问题:
rm -rf ~/.cordova
来提供file.js)。当然,我会通过脚本来做到这一点,但它似乎仍然是一个人应该首先遇到的问题。 由于供应商/资产和公共/文件夹似乎都不是这些文件的正确位置,我希望有更好的选择(或者让后面的选项更好地运作)。
答案 0 :(得分:5)
当文件太大而不能合理地留在一个最小化的资产文件中时,将文件保留在资产管道下的解决方案是按类别拆分资产,在不同的最小化文件中编译这些类别,并将它们包含在您的视图中需要。
我为包含多个"重"的应用程序执行此操作javascripts组件位于我的应用程序的不同区域,并且不经常使用。
1 - 整理您的文件结构
在 app / assets / javascrips 和 app / assets / stylesheets 中,为我们要创建的每个类别创建一个目录。例子:
2 - 创建清单
在 app / assets / javascrips 和 app / assets / stylesheets 中,为每个类别创建一个清单文件,并将它们包含在相关目录中
文件 app / assets / javascrips / common.js
//= require jquery
//= require_tree ./common
文件 app / assets / javascrips / admin.js
//= require_tree ./admin
文件 app / assets / javascrips / user_account.js
//= require_tree ./user_account
3 - 将您的清单添加到rails 预编译列表
你可以在 config / application.rb 文件中执行此操作,但是当它变大时,最好创建一个初始化文件 config / initializers / assets.rb < / p>
Rails.application.configure do
config.assets.precompile += %w[common.js admin.js user_account.js]
end
4 - 将它们包含在您的视图和布局中,并设置您的JavaScript库。
将资源文件导入布局和视图。为应用程序的不同区域创建多个布局可能是一个好主意,这些布局将使用公共资源文件。使用的方法是
stylesheet_link_tag 'manifest_file'
和javascript_include_tag 'manifest_file'
请记住,在动态加载文件时,您可能需要告诉他们需要使用miniminied文件的javascript插件。对于他们,您可以使用配置 .js.erb 文件。例如:
文件 app / assets / javascrips / admin / plug-in_config.js.erb
PLUGIN.config('dynamicFileName', '<%= javascript_path('manifest_file') %>');