在角度中,创建链接中没有 # 且不修改服务器的 spa

In angular, create spa without # in links and with no server modifications

本文关键字:修改 服务器 spa 创建 链接      更新时间:2023-09-26

我正在创建一个 Angular 1 SPA,我添加了

<base href="/">

$locationProvider.html5Mode({enable:true, requireBase:false});

所以,现在我的链接就像http://localhost:1234/about,没有#字符。

我的问题是,如果我将该 URL 粘贴到浏览器中,我将得到一个空响应,因为这是默认的 behiavior。它试图抓取不存在的"关于"html页面。

当我访问一个 URL 时,我不想得到空的响应。如何在没有服务器修改的情况下解决这个问题?如果无法做到这一点,我需要进行哪些服务器修改?

谢谢

如果你使用nginx作为你的Web服务器,你应该像这样配置它:

server {
    listen 1234;
    server_name localhost;
    location / {
        root /path/to/angular/project;
        try_files $uri $uri/ /index.html =404;
    }
}