当我在 NginX 中提供服务时,如何通过 reactjs 访问 laravel 中的 public 文件夹?

How to access public folder in laravel through reactjs when I serve them in NginX?

我正在使用 Reactjs 和 Laravel(Breeze 版本)开发一个项目。

该项目是 dockerized 和服务,我使用 Nginx 作为 web 服务。我通过将 /api 添加到前端 url.

的末尾来将其配置为访问 laravel 后端

一切都很好,但是当我尝试访问 public 文件夹(在后端)中上传的图像文件时,出现 404 错误。

这是我的 nginx 配置文件:

.
.
.
  # laravel backend
  location ~ /api {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location ~ \.php$ {
    root /var/www/html/backend/public;
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass laravel:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_hide_header X-Powered-By;
  }
.
.
.
.

我的前端 nginx 配置文件中有另一个根:

server {

  listen 80 default_server;

  server_name _;

  server_tokens off;

  root /var/www/html/frontend;
.
.
.

在 Nginx 配置文件中为我的上传文件夹添加新位置(在 laravel public 文件夹内)花了几个小时后问题得到解决:

location /uploads/ {
  alias /var/www/html/backend/public/uploads/;
}