0

我的 AngularJS 项目使用html5mode,我做这些代码来打开 html5mode

  • 在 HTML 中:
...
<base href="/features-A/">
...
  • 在 JS 中:
app.config(['$locationProvider', function($locationProvider) {
    $locationProvider.html5mode(true)
}])

注意:这/features-A/不是我项目中的实际文件夹,它只是AWS CloudFront中定义的一种行为,因为我们也有一些/features-B指向其他项目的URL,我们只需要知道:是否通过“ http:// ”访问myhost.com ”或“ http://myhost.com/features-A/ ”是我项目的入口文件:index.html

这是浏览器的作用

  1. 当转到我的“登录”页面时,地址栏中的 URL 是

    http://myhost.com/features-A/signin

  2. 当转到“主页”页面时,地址栏中的 URL 是

    http://myhost.com/features-A/ome

如我们所见,AngularJS 通过HistoryAPI 将 URL 添加/features-A/到 URL 中

我想要的是

  1. 当人们访问“登录”时,该 URL 没有/features-A/

    http://myhost.com/signin

  2. 当人们访问“主页”页面时,该 URL 具有/example

    http://myhost.com/features-A/home

这将使我们的网站看起来像登录页面是一个独立的和外部的系统/features-A/

我试过的

我尝试了一些解决方案,但没有奏效:

  1. 在事件中动态设置基本 hrefstateChangeSuccess但 URL 仍然更改
  2. 使用 HTML5 历史 APIpushStatereplaceState函数,这样会导致页面无限刷新

那么,有没有办法解决这个问题呢?

4

1 回答 1

0

你怎么不创建一个新的虚拟主机?

通过 php

php -S localhost:8080

在文件夹的项目中键入此命令

于 2019-04-09T04:10:15.410 回答