防止Active Admin资源在非Active Admin页面加载。

3

我正在使用 active_admin,它非常好用。Active Admin 有许多依赖项,如 jquery-ui,datepicker 等

<script src="/assets/active_admin/jquery_ui.self-75a11da44c802486bc6f65640aa48a730f0f684c5c07a42ba3cd1735eb3fb070.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/base.self-ab2cb3098b53fe7d229937d768d701e8f4013f2a5aea7988d8f2149fa40426db.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/batch_actions.self-fbed82dc1e31cf860056cce6c02f5bc5831ad5343d68ac3ab17471c9e05e9195.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/checkbox-toggler.self-ab6f686db7db58fd7f370cd6f7a6d7abe6884b8d2a144f42a744c2276587b457.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/dropdown-menu.self-8ccb356121a1c40094bb429d6cfac85d9c8ad114fb93730892d9df9986730a0a.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/flash.self-8f05a5d9328ea28fca100b057787fbfb567986513c5f1735ea48fad8f9571c10.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/has_many.self-ece319debdc01ca5096ae8ac6c130ffc0decab382543b4b94e18591375d3d3bb.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/modal_dialog.self-5dfc6e87bae26cd4a021eb86951d3691ed07e6d2bf242a8eb65dc6965e12096c.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/per_page.self-94323c49402595a22bdea01b8dc3f8103e290d300238ebd49efa26d76d7ee117.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/lib/table-checkbox-toggler.self-f5200d732ec9ffd4ee8fd1fe11524ad7b54a67f6c0ef447a29d119ece2dcecdb.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/ext/jquery-ui.self-f96f2ec2a32c4bc4da4292cc74bddeca0bb223d81a421c98c4d613632860945e.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/ext/jquery.self-da8dafbbe883092bcae73f35a8caf4ae6170fe7d8130ae7039a233f9b509c757.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/initializers/batch_actions.self-f5c360e8640b40f00640f6e5c7cfe0addeb244ed72e1a9828c52919515d23cf1.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/initializers/datepicker.self-f8ac66c85afd35ee1555c09a2418efc7a7930e1f6dd783461379c2bb2184f80e.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/initializers/filters.self-9b9312d6bed532db668c5417a009b7fb7caf58f33299783ed02c2c72340a498a.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin/initializers/tabs.self-65de8b1688d4f8782c04bf07ba6314d3c8b33b9391a482a07214ac4df99dd904.js?body=1" data-turbolinks-track="reload"></script>
<script src="/assets/active_admin.self-877aef30ae1b040ab8a3aba4e3e309a11d7f2612f44dde450b5c157aa5f95c05.js?body=1" data-turbolinks-track="reload"></script>

我在我的应用程序中没有在任何其他部分使用这些资源。但是,无论是否激活管理页面,我都可以看到它们被加载。那么,是否有可能只在活动管理页面上加载这些资源?(如果不可能,是否可以从 asset pipeline 中删除活动管理,以便依赖项不会在 其他应用程序部分 中加载?)

2个回答

3
与Fivell的答案类似。我通过在required_tree .后立即stub它来修复它,以避免application.js需要active_admin.js
所以,app/assets/javascripts/application.js将变成这样:
// This is a manifest file that'll ...
// ...
//= require rails-ujs
//= require activestorage
//= require_tree .
//= stub active_admin

在我的情况下(Rails 5.2.3和ActiveAdmin 2.1.0),更改这个不会防止ActiveAdmin加载active_admin.css和active_admin.js,所以管理员页面应该没问题。

1
您还需要将相同的代码行放入 /stylesheets/application.scss 文件中,以防止 CSS 文件加载。同样地,它们仍然可以在 activeadmin 页面上正常加载。 - mystic cola

1

您能从您的application.js文件中移除//= require_tree .并重试吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接