Laravel5.6子视图中外联JS无法正常加载求助
解决Laravel 5.6子视图中外联JS无法加载的问题
嘿,作为踩过不少Laravel坑的老玩家,我帮你梳理下可能的问题点和解决办法:
1. 修复Script标签的闭合方式
你在子视图里用了自闭合的<script src="..." />,这在HTML规范里是不被支持的!浏览器解析这种标签时很容易出现异常,直接导致后续的JS文件无法正常加载。
把自闭合标签改成标准闭合写法:
@section('script') <script src="{{ asset('js/jquery.easing.js') }}"></script> <script src="{{ asset('js/jqueryFileTree.js') }}"></script> <script type="text/javascript"> $(document).ready( function() { alert('hi'); // 你的其他业务代码 }); </script> @endsection
2. 确认jQuery的全局可用性
Laravel 5.6默认的app.js是通过Webpack编译的,其中bootstrap.js里已经帮你引入了jQuery并挂载到全局:
window.$ = window.jQuery = require('jquery');
如果没修改过这段代码,那$应该是全局可用的。但如果控制台报错$ is not defined,那要检查:
- 布局里的
app.js是否在@yield('script')之前加载(你当前的写法是对的,先加载app.js再加载子视图的script) - 是否不小心注释了
bootstrap.js里的jQuery全局挂载代码
3. 验证资源文件路径是否正确
打开浏览器的开发者工具→网络标签,刷新页面后查看这两个JS文件的请求状态:
- 如果是404错误,说明文件路径不对:
- 确认文件是否真的放在
public/js目录下 - 如果是用Laravel Mix编译的文件,建议用
mix()代替asset(),比如{{ mix('js/jquery.easing.js') }},它会自动处理版本哈希和正确路径
- 确认文件是否真的放在
4. 检查浏览器控制台的错误信息
打开浏览器控制台(F12),查看是否有JS报错,比如$ is not defined或者文件加载失败的提示,这些信息能帮你快速定位核心问题。
按照上面的步骤排查,应该就能解决你的问题啦~
内容的提问来源于stack exchange,提问作者Techno
相关产品推荐
相关产品推荐

