URL中重复的​​基本href用于angular 7应用

时间:2019-02-18 11:02:17

标签: angular angular7

我创建了一个混合应用程序,可以同时运行Angular 7和AngularJS代码。我已经使用ng build创建了一个build,并将该文件夹作为应用程序托管在IIS中,作为默认网站下的myapp,并且在index.html中给出了<base href="/myapp/">。它是没有任何路由的单页应用程序。我的左侧面板包含程序列表,单击程序时,程序详细信息将加载到右侧面板上。因此,我的应用程序网址如下:http://localhost/myapp/?pid=6133&view=overview。问题是,当我单击程序时,它将在URL中添加myapp。因此,当我第二次单击程序时,我的网址将类似于http://localhost/myapp/myapp/?pid=6133&view=overview。它一直在添加myapp。

能不能让我知道是什么问题?

2 个答案:

答案 0 :(得分:0)

第一个“ myapp”是IIS添加的应用程序上下文,第二个“ myapp”是您在index.html中提供的基本href。

http://localhost/myapp/myapp/?pid=6133&view=overview

我有同样的问题。因此,我遵循的解决方案是使用HashLocationStrategy

{ provide: LocationStrategy, useClass: HashLocationStrategy }

并构建用于生产的应用程序

ng build --prod --base-href=/myapp/

通过提供基本路径,我确保了样式和其他文件的正确加载,因为样式和runtime.js等文件出现404错误。

通过使用HashLocationStrategy,我解决了刷新页面时出现的404错误。

答案 1 :(得分:0)

HashLocationStrategy的主要问题是'#'之后的每个字符都不会发送到服务器。 这会造成很多麻烦。 参见explanation