目前在我的服务器上遇到问题,链接到我的 Laravel 应用程序中的文件。
我目前有一个 images
storage/app/public
中的文件夹我链接了storage/app/public
文件夹到 public
与 php artisan storage:link
.
现在我有一个 image.jpg
在 images
文件夹。
在我的本地系统上使用 valet
我可以看到带有以下链接的图像:
在我的服务器上,只有第二个有效(我认为这是正确的,因为
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/