angular - 如何使用 nginx 访问 Angular 应用程序的特定路由
问题描述
早上好
我正在尝试直接在我的角度应用程序的一页上使用我的路由中的参数访问 nginx。此应用程序不在根目录中,而是在 myapp 子目录中 http://my_serveur:my_port:/myapp/mypage/myparameter.
当我的 Angular 应用程序位于 nginx html 目录的根目录时,我找到了很多访问特定路由的解决方案。
location / {
try_files /$uri /$uri/ /roleapp/index.html;
}
但是当应用程序在子目录中时我不能这样做/usr/share/nginx/html/myapp/
我已经改变了基本的href
ng build --base-href=/myapp/
但 nginx 将应用程序重定向到根目录的 index.html。
我试过了
location /myapp/ {
# alias /usr/share/nginx/html/roleapp/
try_files /myapp/$uri /myapp/$uri/ /myapp/index.html;
}
但是 Nginx 给我发回错误 500。
你能帮我吗?
高飞
解决方案
$uri
变量已经包含了前导/
,所以你的第一条try_files
语句实际上应该是这样的:
try_files $uri $uri/ /roleapp/index.html;
在第二种情况下, 的值$uri
已经包含/myapp/
前缀,因为只有以开头的location /myapp/ { ... }
块才会被输入。所以你的第二个语句应该是这样的:$uri
/myapp/
try_files
try_files $uri $uri/ /myapp/index.html;
有关更多信息,请参阅此文档。
推荐阅读
- python - Django在父母详细信息页面上获取父母的孩子
- clojurescript - 如何在 Node 上运行的 Clojurescript 中获取用户主目录的路径?
- sql - 如何在 Redshift 中将时间戳与 GMT 时区转换?
- kotlin - 如何使用 Ktor 和 Kotlin 下载带有进度指示器的大文件?
- excel - 我在多个条件场景中遇到“类型不匹配”错误(使用了 case 函数)
- sql-server - 如何防止数据库触发器在插入后更新@@identity
- clojurescript - 如何附加到 ClojureScript 中的文件(在节点上)?
- jquery - 将 virtualsky 库嵌入到 react 组件中
- javascript - Node - 关于 promise 使用 let 定义函数的最佳用例
- spring-boot - 如何在 Spring Boot 和 Swagger 的一个 POST 请求中发布带有附加信息的 MultipartFile?