MeEdu---开发插件之【静态资源访问】

为了保证插件的独立性,该插件的静态资源被约定和插件放到一起,在插件目录下的 public 作为静态资源:

然后我们在插件的 AppCommand 文件中为这个静态目录创建一个软链接,这样就可以访问插件里面的静态文件了(Laravel 的 php artisan storage:link 就是这个原理)。

修改 Commands / AppCommand.php 文件

原始:

修改代码:

代码示例:

<?php
namespace Addons\School\Commands;

use Illuminate\Console\Command;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Facades\Artisan;

class AppCommand extends Command
{
    protected $signature = 'School {action}';
    protected $description = '';
    protected $file;

    public function __construct(Filesystem $file)
    {
        parent::__construct();
        $this->file = $file;
    }

    public function handle()
    {
        $action = $this->argument('action');
        $method = 'action' . ucfirst($action);
        $this->{$method}();
    }
    protected function actionInstall()
    {
        // 插件安装执行的业务逻辑 
        // 静态目录软链接
        @unlink(base_path('public/addons/School'));
        $this->file->link(base_path('addons/School/public'), base_path('public/addons/School'));
    }
    protected function actionUninstall()
    {
        // 插件卸载执行的业务逻辑
        // 删除软链接
        @unlink(base_path('public/addons/School'));
    }
    protected function actionUpgrade()
    {
        // 插件升级执行的业务逻辑
    }
}

到此代码部分完成了,但是并没有创建软链接,原因是该方法在:插件安装的时候调用。

需要去到后台,找到插件后:关闭 后 重新 安装:关闭后重新打开即可:

然后我们就可以在:public 目录下的 addons 目录看到创建的软连接目录:

如何访问:

/addons/School/Frontend/pc.css
/addons/School/Frontend/wap.css

模板中使用:

<link rel="stylesheet" href="{{asset('/addons/School/Frontend/pc.css')}}">
<link rel="stylesheet" href="{{asset('/addons/School/Frontend/wap.css')}}">

打完手工! 

posted @ 2022-07-13 13:40  帅到要去报警  阅读(109)  评论(0)    收藏  举报