nginx:子文件夹中静态内容的位置

时间:2018-06-01 18:33:53

标签: html nginx routing

我正在尝试设置一个nginx服务器,以便在地址http://mydomain/memorygame上提供React应用

目前我有以下nginx路由配置:

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  root /var/www/mydomain.com;
  index index.html;
  server_name mydomain.com www.mydomain.com;

  location /memorygame {
    root /var/www/mydomain.com/memorygame;
    try_files $uri /$uri $uri/ /index.html $uri/index.html  =404;

    location ~* \.(css|js)$ {
      try_files $uri /$uri  =404;
    }
  }

css文件存储在/var/www/mydomain.com/memorygame下,在index.html中链接为/static/css/main.d5dd0bd5.css。

index.html加载正常,但css请求不会路由到我想要的位置。如果我从try_files中取出“/index.html”,则会加载css,但index.html不会。我怎样才能使它们同时工作?

(我的猜测是问题的一部分是发出的css请求发送到mydomain.com/static/css/style.css而不是mydomain.com/memorygame/static/css/style.css,但我可能是如果我没错,有没有办法自动添加/static/css/style.css相对于mydomain.com/memorygame文件夹?)

提前致谢!

1 个答案:

答案 0 :(得分:0)

我自己想通了。删除location /memorygame块之外的所有内容都可以解决问题。 Nginx默认完成了我想要实现的目标。