Dcat Admin JS脚本重复加载的问题
版本
Dcat Admin 2.2.2beta
laravel 9.19.0
问题
我自定义了页面 A,在控制器中需要加载页面 A 需要的 js 文件,分别为 register.js
和 register-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.js
和 register-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,希望大佬指点。
框架pjax问题,js最好不要这样放,放在admin定义的bootstrap.php里吧。或者加上取消绑定