Laravel 前端資源配置

最近在學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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章