0

我一直在this blog post提到的角2/ASP.NET核心SPA模板后造成新的页面加载。当使用dotnet new angular时,使用这些技术和Bootstrap 3.3.7生成Visual Studio 2017项目。我更新了package.json以使用Bootstrap 4.0.0-alpha.6,安装了新软件包,并reran webpack --config webpack.config.vendor.js生成了一组新的CSS和JS。角2路升级从引导3.3.7至4.0.0-alpha.6

然而,在应用程序切换路由时,我注意到在Chrome开发者工具联网标签的路由现在做一个完整的页面刷新,而不是输出在路由器出口新内容。

Bootstrap附带JS文件以允许Bootstrap插件工作,并且在默认模板输出的情况下,用于小屏幕上的折叠导航栏/汉堡包菜单。我想也许更新的Bootstrap JS可能会干扰,所以我删除了bootstrap条目webpack.config.vendor.js并留在条目bootstrap/dist/css/bootstrap.css,这意味着只有CSS现在被绑定,而不是与其关联的JS绑定。我reran webpack并确认它不再与供应商JS的其他供应商捆绑在一起。但是,在运行应用程序时,路由仍以相同的错误方式运行。

如果我们升级引导之前运行的应用程序当看一看生成的HTML,路线是这样的:

<a _ngcontent-ec6b-1="" ng-reflect-router-link="/home" ng-reflect-href="/home" href="/home">Home</a>

升级在这个CSS结果:

<a _ngcontent-1="" href="/home">Home</a>

注意,在后一种代码丢失的属性;我在最新的Chrome浏览器和Edge浏览器中证实了这一点,并且我从VS2017中的IIS Express以及dotnet run运行。为什么简单地更新捆绑的Bootstrap CSS会改变Angular 2路由的HTML输出?

回答

0

我能够通过为Tether添加缺少的Bootstrap依赖项来解决此问题。按照these steps