laravel - 代客显示错误 URL 下的文件

标签 laravel laravel-valet valet

目前在我的服务器上遇到问题,链接到我的 Laravel 应用程序中的文件。

我目前有一个 images storage/app/public 中的文件夹我链接了storage/app/public文件夹到 publicphp artisan storage:link .

现在我有一个 image.jpgimages文件夹。
在我的本地系统上使用 valet我可以看到带有以下链接的图像:

  • /images/image.jpg
  • /storage/images/image.jpg

  • 在我的服务器上,只有第二个有效(我认为这是正确的,因为 images 目录中没有直接的 public 文件夹。

    问题是,我在部署时经常遇到问题,因为客户无法在线看到图像(因为链接不起作用)。如果我在测试 UI 时看不到本地镜像,这将不是问题。

    任何人也有这个问题,可以引导我找到某种解决方案吗?

    最佳答案

    问题是 LaravelValetDriver有一个后备测试;如果公共(public)目录中不存在该文件,则它将检查公共(public)存储目录。

    您可以找到 here :

    if ($this->isActualFile($storagePath = $sitePath.'/storage/app/public'.$storageUri)) {
        return $storagePath;
    }
    

    你可以通过 creating your own Valet Driver 来阻止这种行为。扩展 LaravelValetDriver 并覆盖 isStaticFile方法,例如:
    class NoStorageFallbackLaravelValetDriver extends LaravelValetDriver
    {
    
        public function isStaticFile($sitePath, $siteName, $uri)
        {
            if (file_exists($staticFilePath = $sitePath. '/public' . $uri)
           && is_file($staticFilePath)) {
                return $staticFilePath;
            }
    
            return false;
        }
    }
    

    关于laravel - 代客显示错误 URL 下的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49734243/

    相关文章:

    php - 使用 "?|"运算符执行查询

    Laravel Nova 字段 BelongsToMany 向下钻取数据

    php - cURL + Laravel Valet + dnsmasq 不工作

    laravel - 代客 502 网关错误

    php - Laravel Eloquent 查询优化

    laravel - 路线上的 Pusher 未在 Laravel 中发送事件

    laravel - 在本地网络上共享代客站点

    Laravel Valet 共享 - 无法连接到 127.0.0.1 端口 4040 : Connection refused

    php - 尝试在 laravel valet 上加载我的 laravel 项目时出错