nginx - 设置默认 nginx 位置
问题描述
我正在构建一个位于 nginx 后面的 MEAN 堆栈应用程序
我的应用程序的角度方面都是通用的,并且会根据用户访问的 URL 做出不同的反应,即如果用户访问 my.app/cars,它将访问不同的网页,而不是用户访问 my.app/自行车
在我的应用程序的 Angular 方面是通用的之前,我的 nginx 开发文件的所有 URL 都是硬编码的
server {
listen 80;
location /cars {
...
}
....
}
但是,既然角度部分是通用的,我希望我的 nginx 默认将所有请求设置为角度。
我一直在网上四处寻找,似乎有
location / {
....
}
应该实现这一点,但是,当我这样做时,我收到“无法访问此站点”错误。
关于如何实现我在默认情况下将 nginx 设置为 angular 的错误的任何建议?
我假设人们在遇到“找不到页面”错误时会这样做,但我还是找不到任何东西。
谢谢
解决方案
简单的:
location / {
root /your/app/directory;
index index.html;
try_files $uri $uri/ /index.html;
}
如果找不到文件,您只需要告诉 nginx 该怎么做。
try_files
将为您解决这个问题。
如果你要求example.com/foo/bar/123
然后它将尝试以下操作:
$uri
>/your/app/directory/foo/bar/123
$uri/
>/your/app/directory/foo/bar/123/index.html
(这是来自index
指令)/index.html
>/your/app/directory/index.html
PS:
如果您指定try_files $uri $uri/ /;
那么最后一条规则将考虑索引指令。类似于第二条指令。
推荐阅读
- matlab - 使用 parallel.FevalFuture/fetchNext 时出错
- sql - 按 ID 和更新列对 SQL 中的行进行分组
- javascript - 如何使用本地存储拥有多个加载和保存按钮?
- python - 如何获取所有正在运行的 GUI 应用程序的列表?
- node.js - Sequelize Where 条件嵌套包含
- javascript - 当更改将提取值时,引导选择实时搜索输入
- html - ul 子元素上的网格元素
- javascript - Anime.js 中的反向动画无法正常工作
- vue.js - 在应用程序加载时设置 Vuex IsMobile 值
- c++ - 操作 C 风格的字符串