Angular 在nginx位置路径下提供角度应用程序

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 这

我正在尝试在nginx服务器中提供一个Angular应用程序(dist)。我尝试了很多在网上找到的配置,应该可以正常工作,但事实并非如此

当我转到
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是正确的方法,谢谢!!