每次重新加载时删除 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 - 创建一个会话数组并在每次重新加载页面时添加到它
当我选择操作栏返回时冻结或制作稳定的 Web 视图?防止每次加载/重新加载