Angular 在nginx位置路径下提供角度应用程序
我正在尝试在nginx服务器中提供一个Angular应用程序(dist)。我尝试了很多在网上找到的配置,应该可以正常工作,但事实并非如此 当我转到Angular 在nginx位置路径下提供角度应用程序,angular,nginx,Angular,Nginx,我正在尝试在nginx服务器中提供一个Angular应用程序(dist)。我尝试了很多在网上找到的配置,应该可以正常工作,但事实并非如此 当我转到my site.com/app时,应用程序正在工作,但在导航后刷新页面时,应用程序不工作 my site.com/app没问题 my site.com/app/dashboard404 my site.com/app/*404 因此,mysite.com/app/*应该始终提供/var/www/angular-app/dist/index.html 这
my site.com/app
时,应用程序正在工作,但在导航后刷新页面时,应用程序不工作
my site.com/app
没问题
my site.com/app/dashboard
404
my site.com/app/*
404
因此,mysite.com/app/*
应该始终提供/var/www/angular-app/dist/index.html
这是我添加到nginx服务器配置中的配置块:
location /app {
index index.html;
alias /var/www/angular-app/dist;
try_files $uri $uri/ index.html =404;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
这是完整的443块,可能是因为root
和alias
路径有问题。此配置文件属于Symphony 1.4应用程序
server {
listen 443;
client_max_body_size 50M;
ssl on;
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
set $website_host "stage.my-site.com";
set $website_root "/var/www/mainproject/web";
set $default_controller "frontend_stage.php";
set $symfony_root "/var/www/mainproject/lib/vendor/symfony";
server_name $website_host;
root $website_root;
index $default_controller;
charset utf-8;
location /sf/ {
# path to folder where all symfony assets are located
root $symfony_root/data/web/;
expires max;
}
location ~ \.php($|/) {
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+\.php)(/.*)") {
set $script $1;
set $path_info $2;
}
include /etc/nginx/fastcgi_params;
#fastcgi_pass backend;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $website_root$script;
fastcgi_param SCRIPT_NAME $script;
fastcgi_param PATH_INFO $path_info;
break;
}
location / {
if (-f $request_filename) {
expires max;
break;
}
try_files $uri @rewrite;
}
location /app {
index index.html;
alias /var/www/angular-app/dist;
try_files $uri $uri/ index.html =404;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
location @rewrite {
rewrite ^(.*)$ /frontend_stage.php$1 last;
}
location /api/ {
try_files $uri /api_stage.php?$query_string;
}
}
alias
和try\u文件可能有问题。尝试将Try_files
语句替换为if(!-e$request_filename){rewrite^/app/index.html last;}
它工作起来很有魅力!!这是暂时的解决办法?我的意思是,如果我尝试文件,我需要让它工作吗?哦,我可以找到问题<代码>try_files$uri$uri//app/index.html=404代码>是正确的方法,谢谢!!