【问题标题】:loading CSS and JS files on specific views in Laravel 5.2在 Laravel 5.2 中的特定视图上加载 CSS 和 JS 文件
【发布时间】:2017-03-22 11:41:09
【问题描述】:

我的 CSS 和 JS 文件只能加载到 Laravel 5.2 中某些非常特定的视图上。

我的老板决定放弃我们用来在刀片模板上加载 JS 文件的 RequireJS。现在,我们正在尝试以原生方式加载依赖项。

这是我的代码:

@extends('layouts.app')
<link href="{{ URL::asset('assets/css/slick.grid.css') }}" rel="stylesheet">
<link href="{{ URL::asset('assets/css/examples.css') }}" rel="stylesheet">
<script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function() {
        loadscript('assets/js/jquery.event.drag-2.3.0.js');
        loadscript('assets/js/slick.rowselectionmodel.js');
        loadscript('assets/js/slick.core.js');
        loadscript('assets/js/slick.grid.js');
    });
</script>
@section('page')
//the rest of page

而我的“loadscript”函数就是这样做的:

function loadscript(url, callback)
{
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;

    head.appendChild(script);
};

这确实有效,但感觉很慢,我相信一定有更好的方法可以在我们想要的任何视图上使用 laravel 加载特定的 css 和 js 文件。

让 css 和 js 文件仅在某些视图上加载非常重要。

【问题讨论】:

标签: javascript php css laravel-5 laravel-5.2


【解决方案1】:

Laravel 5 - Add a stylesheet only if on a certain page/controller (page specific asset)

@extends('layouts.master')

@section('styles')
    <link href="{{asset('assets/css/custom-style.css')}}" />
@stop

【讨论】:

    【解决方案2】:

    如果您不喜欢 @section() 的想法,只想将动态脚本放在一个地方,请在此处查看我的详细答案:

    Laravel 5 - Add a stylesheet only if on a certain page/controller (page specific asset)

    总之,使用命名路由:

    <!-- In layout template -->
    @if (in_array(Route::currentRouteName(), ['profile', 'register']))
        <script src="example.js"></script>
    @endif
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 2019-08-14
      • 2017-11-28
      • 2011-06-21
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多