url でlocalhost:5000/loginを取得すると、Cannot GET /loginが表示されます。したがって、 $routeProvider は機能しておらず、ビューをロードしていません。代わりに、サーバーにリクエストを送信しているため、基本的にはページをサーバーにフェッチしています。しかし、ビューをロードしたい代わりに、ページをサーバーにフェッチしたくありません。私のアプリケーション構造は次のとおりです。
lib
node_modules
public
----js
---------angular などのすべての js ファイル、script.js ファイルがここに
----stylesheets
---------すべての css ファイルがここに
表示
app.js (メインノードファイル)
home.html
index,html
login.html
npm-debug.log
サーバー側で app.js を次のように設定しています。
var express = require('express'),
path = require('path'),
app = express(),
server = require('http').createServer(app)
//io = require('socket.io').listen(server);
app.use(express.static(path.join(__dirname, '/public')));
app.use( app.router );
server.listen(5000);
console.log('listerning to port 5000');
app.use(function(req, res){
res.sendfile('./index.html', {root: __dirname});
});
クライアント側では、Angular の script.js は次のようになります。
var app = angular.module('app', [])
.config(['$routeProvider','$locationProvider', function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix = '!';
$routeProvider.when('/login', {
template: 'login.html',
controller: 'LoginController'
});
$routeProvider.otherwise({redirectTo: 'login'});
}]);
私のindex.htmlファイルにはディレクティブがあります
何を間違えたのかわかりません。どんな助けでも素晴らしいかもしれません。