如何在Gruntfile.js中配置路由?

时间:2019-07-07 21:05:45

标签: angularjs routing gruntjs yeoman connect

我正在尝试添加一条路由来触发AngularJS $stateProvider。当前,如果我使用http://localhost:8080/external-login,服务器将返回“无法获取/ external-login” 。如果我使用http://localhost:8080#external-login,则$stateProvider会选择并使用正确的控制器。我希望能够配置路由或URL重写规则以强制使用哈希符号。

到目前为止,我已经尝试使用connect-modrewritegrunt-connect-route,但收效甚微。

这是当前未更改的连接设置:

// The actual grunt server settings
    connect: {
      options: {
        port: 8080,
        // Change this to '0.0.0.0' to access the server from outside.
        hostname: 'localhost',
        livereload: 35730
      },
      livereload: {
        options: {
          open: true,
          middleware: function (connect) {
            return [
              connect.static('<%= yeoman.tmp %>'),
              connect().use(
                '/bower_components',
                connect.static('./bower_components')
              ),
              connect().use(
                '/app/styles',
                connect.static('./app/styles')
              ),
              connect.static(appConfig.app)
            ];
          }
        }
      },

首先,我尝试添加var modRewrite = require('connect-modrewrite');,然后将其添加到middleware部分:

             connect().use(
                modRewrite(
                  [
                    '^\/external-login\(.*)$ /index.html\#external-login/$1 - [L]'
                  ])),

这似乎几乎可行,但具有不允许应用程序加载或正常运行的副作用。

然后我将其删除,并尝试添加grunt.loadNpmTasks('grunt-connect-route');,然后添加options部分下的规则:

      rules: {
        '^/external-login$': '/index.html/#external-login'
      },

如上所述,我想配置Gruntfile.js以了解如何路由到应用程序,以便应用程序可以将浏览器定向到正确的控制器。

0 个答案:

没有答案