【问题标题】:Laravel Blade compiled view not updating. Getting wrong output in browserLaravel Blade 编译视图未更新。在浏览器中得到错误的输出
【发布时间】:2014-11-30 05:03:56
【问题描述】:

好的,基本上我有一个新的宅基地设置(0.1.9)。我在设置共享文件夹时遇到了很多问题(因为 VirtualBox 文件夹共享真的很慢)。所以我目前的设置是这样的:Homestead (0.1.9) nfs share(使用来自 github 的 winnfs)。

当视图被缓存(编译)并且不想更新时,就会出现问题。文件中的每一个新添加都会显示出来,但如果删除,视图就会被破坏。我禁用了 nginx sendfile(因此在使用 nfs 时消除了奇怪的缓存问题),在 php.ini 文件中禁用了 opcache(因此没有缓存),宅基地系统时间就像主机机器时间(以避免在时间戳该文件被解析,如果它甚至被解析)。如果我转到 app/storage/views,我可以看到视图已编译,但只有在第一次编译时它们才没有错误。

假设我从这个文件开始:http://laravel.io/bin/xmoQd。我在浏览器中加载它,编译后的版本被添加到 app/storage/view。我添加了 lispum*15 并再次刷新。编译后的版本再次更新,一切正常。

问题是,当我删除之前的修改并刷新页面时,我在 app/storage/view 中得到了这个:http://laravel.io/bin/KX7eD。我在 php.ini 中禁用了 nginx sendfile、opcache,我正在使用 nfs (winnfs) 与 homestead 共享文件夹。我做了 php aristan cache:clear,在 php artisan tinker 中做了 Cache::flush(),从 app/storage/views 中删除了所有内容,composer 再次安装了。有谁知道出了什么问题。谢谢

编辑:我又测试了一些,确认这是使用NFS触发的错误。基本上发生的事情是 Laravel 在编译过程中为视图提供服务,我得到了这个奇怪的输出。当我恢复使用非常慢的 VirtualBox 文件夹共享时,一切正常,但现在的问题是页面加载时间真的很慢。

【问题讨论】:

标签: laravel nginx laravel-4 virtualbox blade


【解决方案1】:

我有时会遇到这个问题,虽然这不是真正的 Laravel 问题,而是操作系统问题,但我破解了 Laravel View 服务,使其不再缓存视图:

创建一个覆盖 isExpired 方法的 Blade 编译器:

class BladeCompiler extends IlluminateBladeCompiler {

    public function isExpired($path)
    {
        if (Config::get('cache.views') === false)
        {
            return true;
        }

        return parent::isExpired($path);
    }

}

创建一个服务提供者来覆盖编译器实现:

class Provider extends ServiceProvider {

    /**
     * Indicates if loading of the provider is deferred.
     *
     * @var bool
     */
    protected $defer = false;

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $app = $this->app;

        $app->bindShared('blade.compiler', function($app)
        {
            $cache = $app['path.storage'].'/views';

            return new \My\BladeCompiler($app['files'], $cache);
        });
    }

}

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多