Dcat Admin JS脚本重复加载的问题

版本

Dcat Admin 2.2.2beta
laravel 9.19.0

问题

我自定义了页面 A,在控制器中需要加载页面 A 需要的 js 文件,分别为 register.jsregister-page.js,其中 register.js 存放了一个类
直接通过 Url 访问页面 A 或在页面 A 刷新的时候(如果第一个访问的页面不是 A 页面则不会出现这样的问题),会出现如下情况:当通过后台菜单切换到其它页面后,重新切换至页面 A,控制台会提示:

Uncaught SyntaxError: Identifier 'Base64' has already been declared (at register.js?v2.2.2-beta:1:1)

查看浏览器网络列表后,发现页面 A 的所有 js 文件(register.jsregister-page.js)都被再次加载了,也就是重复加载同一个 js 导致的重名语法错误。
我是这样加载 js 文件的:

class RegisterController extends \App\Http\Controllers\Controller
{
    public function index(Content $content)
    {
        Admin::js("/js/socket.io.js");
        Admin::js("/js/sha256.min.js");
        Admin::js("js/register.js");
        Admin::js("/js/register-page.js");
        return $content->body(admin_view("admin.register"));
    }
}

不知道是我用错了还是框架的 BUG,希望大佬指点。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

框架pjax问题,js最好不要这样放,放在admin定义的bootstrap.php里吧。或者加上取消绑定

1年前 评论
讨论数量: 2

框架pjax问题,js最好不要这样放,放在admin定义的bootstrap.php里吧。或者加上取消绑定

1年前 评论
laradocs

这是 pjax 引起的问题,你可以选择楼上的方法或者关闭 pjax 就没问题了。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!