我有点困惑。使用 Node
文件夹结构图片附后。
如果我将 index.html
放在 Client 文件夹的根目录下,一切正常。
另一方面,如果我将 index.html 移动到 views 文件夹中,就像在图像中那样,那么 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>
最佳答案
目前您没有在 express.static
中包含 JS .包含的 JS 源代码位于 ../js
从你的 index.html 文件哪里也去不了,因为 client/views
是 express.static
提供的唯一目录.
您应该只将整个客户端包含在您的静态中,否则您必须将每个目录包含在您的静态提供程序中。
app.use(express.static(__dirname + '/client/views'));
意味着您正在提供/client/views 中的任何内容,但不在该目录之外。
app.use(express.static(__dirname + '/client/js'));
将允许您提供 JS 文件夹,但它将在根目录下访问。您可以使用两个静态提供程序,但在发生冲突时第一个将获胜。你也可以做 app.use(express.static('/js', __dirname + '/client/js'));
你们都可以在 yoursite.com/js
访问客户端/js但这对我来说似乎很奇怪。
在此处阅读有关使用 express.static 的信息:http://expressjs.com/api.html#middleware
关于node.js - View 文件夹中的 angularjs index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17026328/