如何使用Express.JS提供静态内容(.html,.js等)

时间:2015-02-25 19:51:37

标签: express

Express不允许我的Web应用程序加载AngularJS。我的Web应用程序的目录结构基本上如下所示:

\root
    server.js
    \angularApplication
        index.html
        \assets
            angular.js

我的server.js看起来像这样:

var express = require('express');
var app = express();

app.get("/", function(req, res) {
    res.sendFile(__dirname + '/angularApplication/index.html');
});

app.use("/angularScripts", express.static(__dirname + '/angularApplication/assets'));

index.html加载正常,但脚本无法加载。我收到404错误:

  

获取http://localhost:8000/angularScripts/angular.js

如果我通常在我的HTML中引用AngularJS:

<script src="/relative-path-to/angular.js"></script>

然后Express仍然无法获取文件。我做错了什么,为什么Express拒绝提供任何我的脚本?

1 个答案:

答案 0 :(得分:0)

以下对我有用:

app.use("/angularJS", express.static(__dirname + '/angularApplication/assets'));

但是只有我像这样引用HTML中的脚本:

<script src="angularJS/angular.js"></script>

显然,这并不意味着app.use的使用方式。我发现的更好的解决方案是:

app.use(express.static(__dirname + '/angularApplication/assets'));
// app.use(express.static(__dirname + '/angularApplication/etc'));

这些将提供目录中的所有文件,因此脚本和样式表可以像这样在前端引用:

<script src="angular.js"></script>