我在内置Laravel的缓存系统中遇到了非常烦人的问题。
此缓存系统为指定视图生成相同的缓存!即使我在这个视图中做了一些更改然后我清除了缓存(通过php artisan和手动等),它也会为此视图生成相同的新缓存文件。
让我带你一个示例代码(也许我做的事情不好但是......)
控制器:
class UsersController extends Controller {
public function manage()
{
return view('administration::users.manage');
}
}
查看:
@extends('administration::layouts.master')
@section('content')
<div class="normalheader transition animated fadeIn">
<div class="hpanel">
<div class="panel-body">
<a class="small-header-action" href="">
<div class="clip-header">
<i class="fa fa-arrow-up"></i>
</div>
</a>
<div id="hbreadcrumb" class="pull-right m-t-lg">
<ol class="hbreadcrumb breadcrumb">
{!! Breadcrumbs::render('module.administration.users.manage') !!}
</ol>
</div>
<h2 class="font-light m-b-xs">
Users
</h2>
<small>Loading buttons</small>
</div>
</div>
</div>
<div class="content animate-panel">
<div class="row">
<div class="col-lg-12">
<div class="hpanel">
<div class="panel-heading">
Dashboard Home TEST
</div>
<div class="panel-body">
Content of Dashboard TEST
</div>
</div>
</div>
</div>
</div>
@stop
缓存文件(始终相同,与更改无关)
<?php $__env->startSection('content'); ?>
<div class="normalheader transition animated fadeIn">
<div class="hpanel">
<div class="panel-body">
<a class="small-header-action" href="">
<div class="clip-header">
<i class="fa fa-arrow-up"></i>
</div>
</a>
<div id="hbreadcrumb" class="pull-right m-t-lg">
<ol class="hbreadcrumb breadcrumb">
<li><a href="index.html">Dashboard</a></li>
<li>
<span>Interface</span>
</li>
<li class="active">
<span>Loading buttons</span>
</li>
</ol>
</div>
<h2 class="font-light m-b-xs">
Ladda
</h2>
<small>Loading buttons</small>
</div>
</div>
</div>
<div class="content animate-panel">
<div class="row">
<div class="col-lg-12">
<div class="hpanel">
<div class="panel-heading">
Dashboard Home
</div>
<div class="panel-body">
Content of Dashboard
</div>
</div>
</div>
</div>
</div>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('administration::layouts.master', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
如您所见,我更改了Content of Dashboard
- &gt; Content of Dashboard TEST
没有任何变化。
我已禁用opcache和其他东西,缓存在.env中设置为数组
我可以做些什么来解决这个恼人的问题?
答案 0 :(得分:0)
为什么这不起作用可能有几个原因。
刀片的工作方式是检查上次编辑*.blade.php
文件的时间,如果这比编译文件晚,则会再次编译刀片文件。原因可能是您的计算机位于服务器之外的另一个时区,因此,Laravel认为不应编译这些文件。尝试将服务器的时区设置为与您正在开发的计算机相同的时区。
另一个问题可能是项目的/storage
文件夹不可写。您的Web服务器必须具有对此文件夹及其子文件夹的写访问权。