Laravel 5为DEV与PRODUCTION配置LOCAL与CDN资源(例如bootstrap,jquery,angular)

时间:2015-11-07 12:26:06

标签: php laravel laravel-5 resources

如果在其他地方得到解答,请提前抱歉。我的搜索词没有返回任何内容

我想有两种不同的配置来检索jQuery,Bootstrap,Angular等资源文件

在制作中,我想从CDN中检索,例如for Bootstrap:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

在开发中,我可以离线或使用不可靠的互联网连接,因此我想将其配置为访问某些本地下载的版本,例如:

<link rel="stylesheet" href="{{URL::asset('assets/bootstrap/3.3.5/css/bootstrap.min.css')}}">

如何配置以便在两种设置之间切换?

3 个答案:

答案 0 :(得分:2)

如果你不明确地满足if ... else ...结构但更喜欢配置那么这个包最适合:Stolz/Assets

此致

答案 1 :(得分:2)

如果您想在每次加载页面时避免评估,可以extend blade,例如:

\Blade::directive('cdnasset', function ($expression) {
    if (\App::environment('local')) {
        return '<link rel="stylesheet" href="<?php URL::asset'.$expression.'; ?>">';
    } else {
        $css = substr($expression, 2, -2);
        return  '<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com'.$css.'">';
    }
});

这会将评估缓存在storage/framework/views/中,所以如果你测试它,请记得用工匠清除你的观点!

答案 2 :(得分:1)

@if(App::environment('local'))
    {{-- The environment is local --}}
    <link rel="stylesheet" href="{{URL::asset('assets/bootstrap/3.3.5/css/bootstrap.min.css')}}">
@else
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
@endif