我是 AngularJs 的初学者,我遇到了一个我不明白为什么的问题,希望你们能帮助或启发我。我正在尝试使用 angularJS + expressJS 构建一个单页应用程序,一切正常,但直到我刷新我的页面,例如我在 localhost:3000(这是我的主页)并且我访问 localhost:3000/login 它工作完全没问题,但是如果我刷新页面,css 不包含在 localhost:3000/login 上,因为我将 login.ejs 文件注入到“/”上的 ng-view 中(其中 css 文件位于“index.ejs” ) 但是一旦我刷新页面,浏览器只会加载我没有包含 css 的 login.ejs。非常感谢您的帮助
在我发布有关堆栈溢出的问题之前,我已将其发布在 google+ 组上以寻求帮助,但是我的问题仍未解决,我认为我写错了代码或其他什么。如果您有时间,请查看下面的代码:
这是我的 express 中间件(google+ 上的一位用户告诉我将 app.router 移动到 express.static 下方)
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/public/views');
app.set('view engine', 'ejs');
app.use(express.cookieParser());
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.static(path.join(__dirname, 'public')));
app.use(app.router);
这是中间件之后的路由(主要是 main.ejs 只是我在“/”路由上注入的一些数据)
app.get('/', routes.index,function(req, res){
res.render('main')
});
app.get('/:path',function(req, res){
var path = req.params.path;
res.render(path);
});
app.get('*', function(req, res) {
res.redirect('/' + req.path);
});
在这种情况下,我将数据注入 index.ejs 内的 index.ejs 包含
<div ng-view=''></div>
连同 javascript 和 css
在我的 angularjs 文件中
var app = angular.module('myApp',[]).
config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.
when('/', {
templateUrl: 'main.ejs',
controller: 'IndexCtrl'
}).
when('/login',{
templateUrl: 'login.ejs',
controller: 'IndexCtrl'
}).
otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
}]);