如何使用NodeJS和browserSync重写服务器端HTML5模式URL

时间:2017-12-17 16:24:33

标签: angularjs node.js browser-sync

如何删除#!在我的AngularJS应用程序中添加到url?

我尝试过: - $locationProvider.html5Mode(true).hashPrefix('!');并添加<base href="/">但无济于事。当我导航到特定网址时,#!消失,但当我尝试重新加载时,它会给出错误: - Cannot GET

所以我在网上看了一下,发现上面做的只是解决方案的一半。我们还需要在服务器端重写逻辑。所以我使用NodeJS和browserSync包来启动localhost。那么这个解决方案是什么?

注意: - 我的后端和前端代码是分开的,都处理路由。

1 个答案:

答案 0 :(得分:0)

Browsersync中有一个名为 single 的选项,如果网址不存在,该选项将index.html作为备用。

  

为所有非资产路线提供index.html文件。使用客户端路由器时很有用

请参阅文档: https://www.browsersync.io/docs/options#option-single

browserSync.init({
    server: {
        baseDir: 'dist',        
    },
    single: true
});