simonmarcellinden/scriptloader

用于动态加载脚本和样式的包

1.1.3 2021-10-20 12:34 UTC

This package is auto-updated.

Last update: 2024-09-20 18:59:23 UTC


README

Latest Version on Packagist Total Downloads Build Status

使用此包,您可以管理从Laravel控制器加载的头部样式和脚本标签。

安装

从命令行运行

$ composer require simonmarcellinden/scriptloader

Laravel <= 5.4

一旦安装了ScriptLoader,您需要将服务提供者注册到应用程序中。打开config/app.php并找到providers键。

将服务提供者添加到config/app.php

    SimonMarcelLinden\ScriptLoader\ScriptLoaderServiceProvider::class,

可选地,如果您想包括外观,也可以在config/app.php中包含它。

    "ScriptLoader" =>"SimonMarcelLinden\ScriptLoader\Facades\ScriptLoader::class,

发布配置

从项目的根目录在命令行运行此命令

$ no config needed

配置文件将被发布到config/scriptloader.php

使用方法

示例

直接在路由或控制器中添加脚本或样式源

app/Http/Controllers/Controller.php

<?php 

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;

use ScriptLoader;

abstract class Controller extends BaseController  {
    use DispatchesCommands, ValidatesRequests;

    public function __construct() {
        // Defaults
        ScriptLoader::set("style", asset('css/default.css'), 3);
        ScriptLoader::set("style", asset('css/app.css'), 1);
    }
}

app/Http/Controllers/HomeController.php

<?php 

namespace App\Http\Controllers;

use ScriptLoader;

class HomeController extends Controller  {
    public function index() {
        // Section description
        ScriptLoader::set("style", asset('css/home.css'), 2);
        ScriptLoader::set("script", asset('js/home.js'), 4, "defer");

        return view('index');
    }

    public function detail() {
        // Section description
        ScriptLoader::set("style", asset('css/details.css'), 2);
        ScriptLoader::set("script", asset('js/details.js'), 2);

        return view('detail');
    }

    public function privateProfile() {
        ScriptLoader::set("style", asset('css/home.css'), 2);
        ScriptLoader::set("style", asset('css/private.css'), 3);
        ScriptLoader::set("script", asset('js/private.js'), 4, "defer");

        return view('private');
    }
}

resources/views/layouts/app.blade.php

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="content-type" content="text/html; charset=utf-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>Laravel - ScriptLoader</title>

        {!! ScriptLoader::load() !!}
    </head>

    <body>
        @yield('content')
    </body>
</html>

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅contributing.md以获取详细信息以及待办事项列表。

安全性

如果您发现任何安全相关的问题,请通过电子邮件info@snerve.de而不是使用问题跟踪器来报告。

致谢

许可证

MIT。请参阅许可证文件以获取更多信息。