首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角9+ Ngnix = 404

角9+ Ngnix = 404
EN

Stack Overflow用户
提问于 2020-06-25 10:05:16
回答 2查看 145关注 0票数 0

我正在使用Angular 9创建一个Loopback 4后端的nginx应用程序。

在使用ng serve时,我可以导航到不同的页面,并在没有问题的情况下刷新页面。然而,在推到暂存服务器之后,我可以导航应用程序,但是如果刷新任何不是staging.mydomain.com/的页面,我会得到一个404错误。

我尝试将try_files $uri $uri/ /index.html;添加到location文件的location部分,但是当我这样做时,就不再加载索引页了。

下面将看到我的server文件的nginx.conf部分:

代码语言:javascript
复制
server {

  listen       443 ssl http2;
  listen       [::]:443 ssl http2;
  server_name  staging.mydomain.com; # managed by Certbot
  root         /usr/share/nginx/html;
  ssl_certificate /etc/letsencrypt/live/staging.mydomain.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/staging.mydomain.com/privkey.pem; # managed by Certbot

  # Load configuration files for the default server block.
  include /etc/letsencrypt/options-ssl-nginx.conf;

  add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

  location / {
    #try_files $uri $uri/ /index.html;
    proxy_pass http://127.0.0.1:3004;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Conneciton 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

}

server {
  listen 80;
  server_name staging.mydomain.com;
  return 301 https://staging.mydomain.com$request_uri;
}

有人能提供一些指导,使我的深层链接正确运作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-25 13:31:03

哎哟,这不是nginx的问题。这是一个Loopback配置问题。

我将以下内容添加到我的application.ts文件中,将所有未处理的请求转发给index.html,以便进行角度捕获和处理。

代码语言:javascript
复制
this.static('*', path.join(__dirname, '../public/index.html'));

一旦我添加了静态路径,一切就开始正常工作了。

票数 0
EN

Stack Overflow用户

发布于 2020-06-25 10:31:44

尝试在代理pass语句的末尾添加一个额外的/

代码语言:javascript
复制
location / {
    #try_files $uri $uri/ /index.html;
    proxy_pass http://127.0.0.1:3004/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Conneciton 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

  • 注意到proxy_pass尾部斜杠的极端重要性,它会自动修改$uri变量,使前端的/foo与后端的/相对应。不需要显式重写指令.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62572830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档