Laravel 前端資源配置
阿新 • • 發佈:2018-12-18
最近在學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') }}">
@endpush
@push('scripts')
<script src="{{ asset('Path_to_JS') }}"></script>
@endpush
@section('content')
<div>
...
</div>
@endsection