2016-12-06 42 views
1

我下面這個:https://laravel.com/docs/5.3/elixir在Laravel與合併JS和CSS工作5.3

這裏是我的gulpfile.js:

elixir(mix => { 
    mix.webpack('app.js') 
    .styles([ 
     'bootstrap.min.css', 
     'agency.css', 
     'font-awesome.min.css', 
     'bootstrap-social.css', 
     'bootstrap-datetimepicker.min.css', 
     'select2.min.css', 
     'icheck.css', 
     'custom.css' 
     ]) 
    .scripts([ 
     'jquery.easing.min.js', 
     'jqBootstrapValidation.js', 
     'agency.min.js', 
     'moment.js', 
     'bootstrap-datetimepicker.min.js', 
     'select2.min.js', 
     'contact_me.js', 
     'icheck.min.js', 
     'ckeditor.js', 
     'echo.js', 
     'custom.js' 
    ]) 
    .version(['css/all.css', 'js/all.js']); 
}); 

在這裏,我簡單地合併所有CSS和JS文件分爲兩文件:all.css和all.js,以儘量減少HTTP請求(以提高性能)

這兩個合併後的文件,獲得存儲在

public/build/css/all-5ba9458ba4.css 
public/build/js/all-1723826a20.js 

而且我包括他們到模板,如:

<link rel="stylesheet" href="{{ elixir('css/all.css') }}"> 
<script src="{{ elixir('js/all.js') }}"></script> 

這裏的問題是,那些合併CSS和JS即all.css和all.js獲得存儲「構建」目錄內。

所以,我需要在構建目錄中移動其他相關的依賴項(如字體)。

那麼,這裏的解決方案是什麼?

任何幫助,將不勝感激。

感謝,

PARTH沃拉

回答

1

藥劑的version方法允許你設置的路徑,我相信

mix.version(['css/all.css', 'js/all.js'], 'public'); 

然後使用

elixir('path/to/script.js', null) // note the null 

在你的情況

<link rel="stylesheet" href="{{ elixir('css/all.css', null) }}"> 
<script src="{{ elixir('js/all.js', null) }}"></script> 
+0

不,它沒有工作。 mix.version沒有這樣的第二個參數() https://laravel.com/docs/5.3/elixir#versioning-and-cache-busting –

+0

它是無證的 - 請參閱[here](https:// github。 COM/laravel /仙丹/ BLOB /主/ src目錄/任務/配方/ version.js#L14)。看看這段代碼建議你也可以在你的elixir config中設置'public.versioning.buildFolder' –

+0

非常感謝, –