0

角度のあるアプリのローカル開発とテストに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」に戻る必要があります…

これを機能させるにはどうすればよいですか?

4

2 に答える 2

3

grunt connect-modrewriteを使用して、ここで解決策を見つけました

単調なタスクは次のとおりです。

server: {
    options: {
        port: 9000,
        livereload: 35729,
        hostname: 'localhost',
        open: true,
        middleware: function (connect) {
            return [
                        modRewrite(['^[^\\.]*$ /index.html [L]']),
                        connect.static('dist')
                    ];
                }
            }
        }
于 2014-10-24T15:09:12.583 に答える
0

baseオプションを追加して、「dist」ディレクトリを Connect サーバーのルートとして指定することをお勧めします。

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

それでも問題が解決しない場合は、少なくともルートの混乱が少なくなります。

于 2014-10-24T23:45:47.743 に答える