2016-12-06 78 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

非常感谢, –