在views文件夹中的angularjs index.html

时间:2013-06-10 14:31:44

标签: node.js angularjs express

我有点困惑。使用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>

Folder Structure

Error

1 个答案:

答案 0 :(得分:3)

目前您不在express.static中包含JS。来自index.html文件的../js中包含的JS源无处可去,因为client/viewsexpress.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