我有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文件仅在某些视图上加载非常重要。
答案 0 :(得分:2)
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
答案 1 :(得分:1)
如果您不喜欢@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