最近在学Laravel,遇到前端资源加载的问题,记录一下。
一、前端共用资源的配置
1. webpack.mix.js
//一般不太更动,透过以下两个档案讲所需资源加载。 mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css');
2. npm 命令安装前端套件资源(以jquery-ui为例)
npm install jquery-ui --save-dev // --save-dev 为加入到package.json:devdependencies中
3. 配置JS资源
// resources/assets/js/app.js try { window.$ = window.jQuery = require('jquery'); require('bootstrap-sass'); window.datepicker = require('jquery-ui'); // 或 import 'jquery-ui/ui/widgets/datepicker.js'; // add as many widget as you may need // 路径到node_modules/jquery-ui...去找 } catch (e) { }
4. 配置CSS资源
// resources/assets/sass/app.scss @import '~jquery-ui/themes/base/all.css'; /* 路径到node_modules/jquery-ui...去找 */
5. 初始/启用套件模组
// resources/assets/js/app.js $('.datepicker').datepicker(); // e.g <input type="text" class="datepicker" /> // 此例之datepicker仅示范,datepicker非所有页面共用,建议写在view(blade)里面,见下段push的方式。 // vue所有页面共用,可以在app.js初始/启用
6. npm编译
npm run dev #resource档案夹下的资源需要编译才会生效
二、各页面私有资源
1. 共用标题模板
@stack('styles') @stack('scripts') <!-- 在适当位置加入以上两条语句,建议@stack('styles'放在<head>中, @stack('scripts')放在<body>内底部(部分JS需要等DOM加载完成方可使用)。 -->
2. 各页面内容模板
@push('styles') <link rel="stylesheet" href="{{ asset('Path_to_CSS') }}" rel="external nofollow" > @endpush @push('scripts') <script src="{{ asset('Path_to_JS') }}"></script> @endpush @section('content') <div> ... </div> @endsection
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理