在Laravel 5.3中使用合并的js和css

时间:2016-12-06 11:38:08

标签: laravel-5 laravel-elixir

我关注此事:https://laravel.com/docs/5.3/elixir

这是我的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存储在“build”目录中。

因此,我需要在该构建目录中移动其他相关的依赖项(如字体)。

那么,这里的解决方案是什么?

任何帮助将不胜感激。

谢谢,

Parth vora

3 个答案:

答案 0 :(得分:1)

Elixir的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>

答案 1 :(得分:0)

这应该有效:

mix.version(['style.css', 'script.js'], 'public');

https://laravel.com/docs/5.3/elixir#versioning-and-cache-busting

答案 2 :(得分:0)

根据本文档,我认为没有为版本方法提供自定义路径的选项。

https://laravel.com/docs/5.3/elixir#versioning-and-cache-busting