当用户访问我的服务器的子目录时,我尝试运行 Laravel 安装(php 应用程序)。我使用 Nginx 来为该子目录和主站点(Wordpress)提供服务。
目录结构如下:
/app
/shop - Laravel
/public - Wordpress
在其中,我有一个 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_files
block错了?
我一直在努力弄清楚其余配置中的一些内容即捕获对 css 和 js 文件的请求并通过常规公共文件夹将它们路由回来?
答案1
我猜
alias /app/shop/public;
应该
alias /app/shop;
这样,您就不需要最后一个位置块了。