Nginx 静态文件未提供

Nginx 静态文件未提供

当用户访问我的服务器的子目录时,我尝试运行 Laravel 安装(php 应用程序)。我使用 Nginx 来为该子目录和主站点(Wordpress)提供服务。

目录结构如下:

/app
  /shop        - Laravel
  /public      - Wordpress

我有我的完整 site.conf 文件在这里

在其中,我有一个 laravel.conf,如下所示:

location /shop {


    alias /app/shop/public;
    try_files $uri $uri/ @shop;

    autoindex on;


    location ~ \.php$ {

        try_files $uri =404;

        include /etc/nginx/includes/fastcgi_params.conf;
        fastcgi_index           index.php;
        fastcgi_split_path_info     ^(.+\.php)(/.+)$;
        fastcgi_param   PATH_INFO   $fastcgi_path_info;
        fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param   SCRIPT_FILENAME $request_filename;

        fastcgi_pass            unix:/var/run/php-fpm.sock;
        fastcgi_split_path_info     ^(.+\.php)(.*)$;
    }

}

location @shop{
    rewrite /shop/(.*)$ /shop/index.php?/$1 last;
}

如果我访问,mysite.dev/它会加载包含所有 css 和 js 资源的 Wordpress 网站,如果我访问,它mysite.dev/shop会加载 Laravel 网站。但它不会加载在/app/shop/public/css/app.css(404 错误) 中找到的任何 css 文件。

我打开了autoindex,如果我导航到mysite.dev/shop/css它,就会显示app.css

我需要添加什么来提供静态文件?

是不是try_filesblock错了?

我一直在努力弄清楚其余配置中的一些内容即捕获对 css 和 js 文件的请求并通过常规公共文件夹将它们路由回来?

答案1

我猜

alias /app/shop/public;

应该

alias /app/shop;

这样,您就不需要最后一个位置块了。

相关内容