【问题标题】:Laravel doesn't open a file with a specific name from the public folderLaravel 不会从公用文件夹中打开具有特定名称的文件
【发布时间】:2016-03-20 04:03:30
【问题描述】:

问题

我使用 Homestead,我在 public 下有一个 images 文件夹,还有一个名为 about_us-employee_1_image.jpg 的 JPG。如果我尝试在正确的 URL 下打开它:http://project.local/images/about_us-employee_1_image.jpg,我会得到一个NotFoundHttpException。仅此特定图像且仅具有此特定名称会发生​​这种情况。如果我更改它的 任何 个字符,它会突然再次起作用。

解决方案尝试失败

问题与路由无关,因为我删除了所有路由,但它仍然在发生。我运行php composer.phar dump-autoload 没有成功。文件和文件夹权限没问题(反正这不是问题,重命名解决不了)。

是否有某种我不知道的资产命名规则?

堆栈跟踪

compiled.php 第 8257 行中的 NotFoundHttpException:

  1. compiled.php 第 8257 行
  2. 在compiled.php第7496行的RouteCollection->match(object(Request))
  3. 在Router->findRoute(object(Request)) 在compiled.php 7461行
  4. 在 Router->dispatchToRoute(object(Request)) 在compiled.php 7453 行
  5. 在 Router->dispatch(object(Request)) 在compiled.php 2302 行
  6. 在内核->Illuminate\Foundation\Http{closure}(object(Request))
  7. 在compiled.php第9585行中的call_user_func(object(Closure), object(Request))
  8. 在 Pipeline->Illuminate\Pipeline{closure}(object(Request)) 在compiled.php 2926 行
  9. 在 VerifyCsrfToken->handle(object(Request), object(Closure))
  10. 在compiled.php第9577行中的call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure)))
  11. 在 Pipeline->Illuminate\Pipeline{closure}(object(Request)) in compiled.php line 12949
  12. 在 ShareErrorsFromSession->handle(object(Request), object(Closure))
  13. 在compiled.php第9577行中的call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure)))
  14. 在 Pipeline->Illuminate\Pipeline{closure}(object(Request)) in compiled.php line 11536
  15. 在 StartSession->handle(object(Request), object(Closure))
  16. 在compiled.php第9577行中的call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure)))
  17. 在 Pipeline->Illuminate\Pipeline{closure}(object(Request)) in compiled.php 第 12686 行
  18. 在 AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
  19. 在compiled.php第9577行中的call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure)))
  20. 在 Pipeline->Illuminate\Pipeline{closure}(object(Request)) in compiled.php line 12623
  21. 在 EncryptCookies->handle(object(Request), object(Closure))
  22. 在compiled.php第9577行中的call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure)))
  23. 在Pipeline->Illuminate\Pipeline{closure}(object(Request)) in compiled.php line 2983
  24. 在 CheckForMaintenanceMode->handle(object(Request), object(Closure))
  25. 在compiled.php第9577行中的call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure)))
  26. 在 Pipeline->Illuminate\Pipeline{closure}(object(Request))
  27. 在compiled.php 9567行中的call_user_func(object(Closure), object(Request))
  28. 在Pipeline->then(object(Closure)) 在compiled.php 2249行
  29. 在 Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 2232
  30. 在 Kernel->handle(object(Request)) in index.php 第 54 行

【问题讨论】:

  • 你试过php artisan cache:clear
  • 我不知道。这个问题已经有一年多了。我从 Homestead 搬到了 Laradock。

标签: php laravel filenames assets homestead


【解决方案1】:

你可以使用 laravel 为你提供的 Storage helper 但你需要在 config/filesystem.php 中添加新磁盘

'front' => [
        'driver' => 'local',
        'root' => public_path(),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

并像这样使用它

$example=Storage::disk('front')->get('about_us-employee_1_image.jpg')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多