【发布时间】:2021-01-15 20:54:59
【问题描述】:
我正在 docker 上运行一个 Vue & Laravel 项目。
Project structure and everything about the setup
首先,我正在尝试在服务器上上传图片。
如果我在没有 docker 的情况下运行这个项目,它将按计划运行(文件正在上传到服务器上并且可以访问)。
但是,如果我用 docker 运行这个项目,它会抛出一个错误(找不到目录)。
重要说明:我猜这可能会发生,因为我正在处理后端的文件(laravel 控制器,代码在下面)。所以它只能访问后端卷。
它试图在前端卷中定位一个文件,但它无法访问它。
那么,问题来了:如何访问该卷?
文件控制器:
public function uploadFile (Request $request) {
# Processing to base64
$exploded = explode(',', $request->image_data);
$decoded = base64_decode($exploded[1]);
# Configuring the extension
$extension = strtok(explode('/', $exploded[0])[1], ';');
# Defining the path
$path = '../../'.'frontend'.'/'.'src'.'/'.'assets'.'/'.'img'.'/'.'files'.'/'.$request->file_name;
# Uploading file to the storage
file_put_contents($path, $decoded);
}
【问题讨论】:
-
你能分享你的 docker-compose.yml 文件吗?你为什么要在 vue 项目中上传一些文件?乍一看似乎错误是试图访问 laravel 项目中不存在的
frontend路径... -
请避免添加代码截图。试图帮助您的人必须输入此代码才能对其进行测试。相反,请使用代码块并将代码复制粘贴到其中。
-
@ChristosLytras 看,正如我之前提到的,控制器中的代码没有任何问题。我附上它只是为了更好的视野。 “如果我在没有 docker 的情况下运行这个项目,它会按计划运行(文件正在上传到服务器上)。但是,如果我用 docker 运行这个项目,它会抛出一个错误(找不到目录)。”跨度>
-
@mpccolorado 请查看这篇文章:medium.com/@crocodile2u/…。在这里你会找到整个设置
-
@TyomaInagamov 我不是在评判代码,我是说您不应该在此处将代码发布为屏幕截图图像并改用代码块。我建议您阅读How do I ask a good question?,尤其是第三段中的“帮助他人重现问题”“请勿发布代码、数据、错误消息等的图像”并阅读此 Q/A Why not upload images of code/errors when asking a question?。
标签: laravel docker vue.js docker-volume