无法GET / page

时间:2014-10-24 13:20:29

标签: angularjs gruntjs grunt-contrib-connect

我正在尝试使用grunt contrib connect进行角度应用的本地开发和测试。

gruntfile的配置如下:

connect: {
    server: {
        options: {
            open: true,
            keepalive: true, 
            hostname: 'localhost',
            port: 8080
        }
    }
}

和任务

grunt.registerTask('serve', [
    'connect:server'
]);

grunt serve使用根目录的文件列表打开浏览器。单击dist目录启动应用程序。一切都很好,直到这里:可以从应用程序菜单更改页面,但是...直接访问或重新加载任何这些页面,给出Cannot GET /dist/page ...有必要回到`localhost:8080 / dist'来制作它再次起作用......

我能做些什么来完成这项工作?

2 个答案:

答案 0 :(得分:3)

我使用grunt here

找到了解决方案connect-modrewrite

grunt任务现在是:

server: {
    options: {
        port: 9000,
        livereload: 35729,
        hostname: 'localhost',
        open: true,
        middleware: function (connect) {
            return [
                        modRewrite(['^[^\\.]*$ /index.html [L]']),
                        connect.static('dist')
                    ];
                }
            }
        }

答案 1 :(得分:0)

我建议您添加 base 选项以指定' dist' directory作为Connect服务器的根目录:

connect: {
    server: {
        options: {
            open: true,
            keepalive: true, 
            hostname: 'localhost',
            port: 8080,
            base: 'dist'
        }
    }
}

如果这不能解决您的问题,至少会使路线不那么混乱。