【问题标题】:Laravel 5 View is loading from cache and new code not affectingLaravel 5 View 正在从缓存中加载,新代码不影响
【发布时间】:2018-07-17 15:02:51
【问题描述】:

我一直在我的 Vagrant 开发环境中工作,并且 Laravel 5 应用程序运行良好。当我将应用程序上传到我的 DO Ubuntu 14.14 droplet 时,它会从缓存中加载视图,当我更新视图刀片模板时,它不会影响站点。

我已经搜索了解决方案,但没有找到任何东西。现在确定如何停止缓存视图或刷新缓存。

错误:

ErrorException in 61093154cb848bf7f33155b09ac70c93 line 132: Undefined property: Illuminate\Database\Eloquent\Collection::$profile_picture (View: /var/www/demo/property/public/resources/views/user/account/acc.blade.php)

    in 61093154cb848bf7f33155b09ac70c93 line 132
    at CompilerEngine->handleViewException(object(ErrorException), '1') in PhpEngine.php line 43
    at PhpEngine->evaluatePath('/var/www/demo/property/public/storage/framework/views/61093154cb848bf7f33155b09ac70c93', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'page_title' => 'User Account', 'profile' => object(Collection))) in CompilerEngine.php line 57
    at CompilerEngine->get('/var/www/demo/property/public/resources/views/user/account/acc.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'page_title' => 'User Account', 'profile' => object(Collection))) in View.php line 136
    at View->getContents() in View.php line 104
    at View->renderContents() in View.php line 78
    at View->render() in Response.php line 44
    at Response->setContent(object(View)) in Response.php line 202
    at Response->__construct(object(View)) in Router.php line 1198
    at Router->prepareResponse(object(Request), object(View)) in Router.php line 702
    at Router->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Authenticate.php line 47
    at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
    at Pipeline->then(object(Closure)) in Router.php line 703
    at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 670
    at Router->dispatchToRoute(object(Request)) in Router.php line 628
    at Router->dispatch(object(Request)) in Kernel.php line 214
    at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 43
    at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
    at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
    at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 61
    at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
    at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
    at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
    at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
    at Pipeline->then(object(Closure)) in Kernel.php line 115
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 84
    at Kernel->handle(object(Request)) in index.php line 53

错误发生后,我更新了第 132 行,但没有影响。我尝试从 acc.blade.php 文件中删除所有内容,但仍然出现错误。

【问题讨论】:

  • “缓存”是什么意思?你的意思是laravel在存储文件夹中为你的视图构建的临时文件?如果您尝试删除该临时文件会怎样?
  • @CarlosHerreraPlata 我在描述中添加了错误。我希望它有助于理解。我没有尝试删除临时文件夹中的文件,因为我不确定这会破坏任何东西或类似的东西。
  • 运行 php artisan cache:clear 清除服务器上的缓存
  • 好吧尝试删除文件61093154cb848bf7f33155b09ac70c93.php,它将存储在:/storage/framework/views
  • 我尝试了php artisan cache:clear 并从storage/framework/views 文件夹中删除文件......但它之前没有工作......但是当我这样做并返回该站点时,它似乎工作。谢谢大家:)

标签: php laravel laravel-5 laravel-blade


【解决方案1】:

我制作了一个包(artisan 命令)来清除视图,因为手动清除它们真的很烦人。

https://github.com/Kyslik/view-clear

刚安装时$ php artisan view:clear

如果您使用的是 Laravel 5.1.*,则不需要此包,因为它是 Laravel 基本命令的一部分。


也许浏览器本身正在做一些缓存,所以在 windows 上使用 ctrl+f5 (ctrl+r) 或在 osx 上使用 shift+command+r 使用“硬重新加载”或“硬刷新”。

【讨论】:

  • 我接受了你的回答,因为我正在使用你从 NPM 获得的包。虽然我需要在view:clear 之前运行php artisan cache:clear,但它仍然有很大帮助,因为我不需要去选择每个文件并删除它们。如果你可以添加一些像view:clear --cc 这样的参数会自动执行cashe:clear,那就太好了。
  • 我会研究它,下次尝试在 github 中发表评论;)。祝工匠好运。
  • @ArifulHaque 执行顺序view:clear, cache:clear 重要吗?
  • 我维护了cache:clear > view:clear 但没有检查相反的顺序。
猜你喜欢
  • 2021-02-16
  • 1970-01-01
  • 2015-11-28
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2011-06-17
  • 1970-01-01
相关资源
最近更新 更多