每次重新加载时删除 Laravel 的存储/视图文件

Posted

技术标签:

【中文标题】每次重新加载时删除 Laravel 的存储/视图文件【英文标题】:Delete Laravel's storage/views files on each reload 【发布时间】:2016-11-30 11:01:42 【问题描述】:

我正在使用很棒的刀片,但缩小尺寸是必须重新编译并创建 html 文件。

所以,在开发阶段,我需要了解如何在每次重新加载页面时删除存储视图中的所有文件。

知道什么是简单的 php 代码,我应该把它放在哪里?在基本控制器中?在文件管理器或 routes.php 中?

感谢您的任何想法。我被卡住了,需要一些建议将删除代码放在哪里,所以在刀片被编译为存储/视图中的 html 文件后它不会被删除。

【问题讨论】:

【参考方案1】:

如果你运行的是 PHP5 或更高版本,你可以试试下面的。您可以根据环境或调试模式打开或关闭它。

<?php
if (env('APP_DEBUG') || env('APP_ENV') === 'local') 
    ini_set('opcache.revalidate_freq', '0');

您也可以只调用 artisan 命令使用中间件或路由过滤器清除缓存。

Laravel 4

<?php
App::before(function($request)

    if (env('APP_DEBUG') || env('APP_ENV') === 'local') 
        Artisan::call('view:clear');
);

Laravel 5+ 中间件:

<?php
namespace App\Http\Middleware;

use Artisan;
use Closure;

class ClearViewCache

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    
        if (env('APP_DEBUG') || env('APP_ENV') === 'local') 
            Artisan::call('view:clear');

        return $next($request);
    

【讨论】:

以上是关于每次重新加载时删除 Laravel 的存储/视图文件的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 创建一个会话数组并在每次重新加载页面时添加到它

Laravel Nova - 重新加载资源的索引视图

当我选择操作栏返回时冻结或制作稳定的 Web 视图?防止每次加载/重新加载

每次将视图控制器压入堆栈时,如何从 appDelegate 重新加载视图控制器?

集合视图不会每次都重新加载

Laravel ajax存储请求errormessage,数据附加到视图