静态站点与快递使用公共fonder

时间:2014-11-14 02:41:00

标签: javascript angularjs node.js express

我认为这可能仅仅是对我如何做到这一点的误解,但它让我烦恼,我没有找到任何答案来回答这个问题。

我有一个静态网站,我的文件结构是

--node_modules
--index.html
--server.js
--app.js

我的server.js很简单,只是

var express = require("express");
var cors = require("cors");

var app = express();
app.use(cors());

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

app.get('/question', function(req, res){
    res.send(req.body);
});

// Start the server on port 3000
app.listen(process.env.PORT || 3000);

// Print out a nice message so you know that the server started
console.log('Server running on port 3000');

和我的引导程序和角度工作......你可能想知道问题是什么......

所以我有第二个网站,我建立并认为我会更好地组织我的东西。我的文件结构是

--node_modules
--public
|---index.html
|---app.js
--server.js

我的server.js的唯一区别是

app.use(express.static(__dirname + '/public'));

我的bootstrap和angular在index.html中引用,如

<script src="../node_modules/angular/angular.js"></script>
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>

这不起作用!...现在我知道我可以第一种方式或使用CND,但我想知道是否有人可以教育我为什么以及我做错了什么。

非常感谢所有的帮助和教育。

1 个答案:

答案 0 :(得分:0)

除非您使用Browserify,否则Angular和Bootstrap可能不应该在node_modules中。 Express不会提供任何不在express.static根目录下的静态文件,因此如果它们高于../,则无法使用public/个相对路径。

也就是说,您需要在public/ index.html下的某个地方移动您想要公开的内容,包括{{1}}以及您将使用的JavaScript库。