我想知道如何在使用nginx时基于URL提供角度的应用程序。因此,假设有一个名为xyz.com/something/的网址,只要该网址中有内容,我都希望ngnix路由到有角度的应用程序。我们如何实现它,我在like this上看到了类似的问题,但无法正常工作。
location /something/ {
root /var/www/xyz.com/html/something/;
try_files $uri $uri/ /index.html =404;
}
假设通常情况下,应用会响应以下网址:
xyz.com/something/login
下面的代码可以正常工作。
location / {
alias /var/www/xyz.com/html/something/;
try_files $uri $uri/ /index.html =404;
}
也尝试过使用base-href做某事described here,但未能使其正常工作。
也尝试了第一个答案。
Nginx CONFIG文件:
location /admin {
root /var/www/xyz.com/html/;
try_files $uri $uri/ /admin/index.html;
}
location / {
alias /var/www/xyz.com/html/user/;
try_files $uri $uri/ /index.html =404;
}
/ admin和/ user指的是同一域中存在的两个不同的AngularJs项目。
测试案例:
URL : www.xyz.com/admin/
RESPONSE : Blank page..
accessing index.html but not redirecting properly
URL : www.xyz.com/admin/login
RESPONSE : Blank page..
ERRORS : Cannot match any routes. URL Segment: 'login'
但是我已经正确路由了。
任何建议?
答案 0 :(得分:0)
您有太多“东西”。通过将URI附加到std::invalid_error
的值来构造文件的路径。有关详情,请参见this document。
在您的配置中,文件术语root
和$uri
将与andy文件不匹配。
如果从$uri/
值中删除something
,则需要将其添加到root
文件元素中。
例如:
index.html
就我个人而言,我没有附加location /something/ {
root /var/www/xyz.com/html;
try_files $uri $uri/ /something/index.html;
}
,但这没有害处,而且我知道许多Angular教程似乎都认为有必要。有关详情,请参见this document。
答案 1 :(得分:0)
location /angular/ {
root /opt/app-root/src;
index index.html index.htm;
try_files $uri $uri/ /angular/index.html;
}
COPY dist/angular-app/. /opt/app-root/src/angular