我有点困惑。使用Nodejs
附加文件夹结构图像。
如果我将index.html
放在Client文件夹的根目录下,那么一切正常。
另一方面,如果我在视图文件夹中移动index.html,就像在图像中那样,js文件没有加载但是index.html正在加载。
Nodejs - server.js
app.configure(function () {
app.set('port', process.env.PORT || 3000);
app.use(express.favicon());
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.logger('dev')); //tiny, short, default
app.use(express.methodOverride());
app.use(express.cookieSession({secret: "sdfr"}));
//app.set('views', __dirname + '/client/views/');
app.use(express.static(__dirname + '/client/views'));
});
app.js
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/',
{
templateUrl: 'partials/home.html',
controller: 'HomeCtrl'
});
$routeProvider.when('/login',
{
templateUrl: 'partials/login.html',
controller: 'LoginCtrl'
});
$routeProvider.when('/register',
{
templateUrl: 'partials/register.html',
controller: 'RegisterCtrl'
});
$routeProvider.when('/404',
{
templateUrl: 'partials/404.html'
});
$routeProvider.otherwise({redirectTo: '/404'});
//$locationProvider.html5Mode(true);
}])
的index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html ng-app="contactManager">
<head>
<meta charset="utf-8">
<title>Angular Demo</title>
</head>
<body>
<a href="#/">Home</a><br/>
<a href="#/login">Login</a><br/>
<a href="#/register">Register</a><br/>
<a href="#/private">Private</a><br/>
<a href="#/admin">Admin</a><br/>
<a href="#/404">404</a><br/>
<div>
<div ng-view></div>
</div>
<script src="../lib/vendor/angularjs/1.1.5/angular.min.js"></script>
<script src="../js/app.js"></script>
<script src="../js/controllers.js"></script>
</body>
答案 0 :(得分:3)
目前您不在express.static
中包含JS。来自index.html文件的../js
中包含的JS源无处可去,因为client/views
是express.static
所服务的唯一目录。
您应该将整个客户端包含在静态中,否则您必须将每个目录包含在静态提供程序中。
app.use(express.static(__dirname + '/client/views'));
表示您正在从/ client / views提供任何内容,但该目录外没有任何内容。
app.use(express.static(__dirname + '/client/js'));
将允许您提供JS文件夹,但它将在root用户访问。您可以使用两个静态提供程序,但第一个将在发生冲突时获胜。您也可以app.use(express.static('/js', __dirname + '/client/js'));
yoursite.com/js
访问{{1}}的客户/ js,但这对我来说似乎很奇怪。
在此处阅读使用express.static:http://expressjs.com/api.html#middleware