我的快递文件看起来像这样:
var express = require('express');
var http = require('http');
var conf = require('./conf');
var app = express();
/*********** start server ************/
http.createServer(app).listen(conf.port, function () {
console.log('Express server listening on port ' + conf.port);
});
/****** Serving Static pages *********/
app.use(express.static(__dirname + '/../client/dist/src/'));
dist文件夹看起来像这样:
dist/
jquery_lib.js
angular_lib.js
app.js
src/
index.html
partials/
state1.tpl.html
state2.tpl.html
当我访问时
http://localhost:12345/index.html
在浏览器中,浏览器无法找到
jquery_lib.js,angular_lib.js和app.js index.html引用如下文件:
<script src="../jquery_lib.js"></script>
<script src="../angular_lib.js"></script>
<script src="../app.js"></script>
浏览器无法找到这些文件的任何线索?
答案 0 :(得分:0)
express.static()
仅提供传递给它的基本目录中的文件。如果您能够突破基本目录并访问父目录/文件,那将是一个很大的安全漏洞。
请将jquery_lib.js
和angular_lib.js
个文件放在src/
的某处,并相应地更新html src=
值。
答案 1 :(得分:0)
您还可以执行以下操作:
app.use('/assets',express.static(path.join(__dirname,'public/assets')));
现在通过这样做,您将获得的好处是,在您的html或您使用的任何模板引擎中,您可以将您的文件放在公共/资产中并将其称为
src = "assets/xyz/abc.js"
。
通过这种方式,管理公共图书馆变得非常容易。