我想使用 Express 向我的应用程序提供静态数据并处理对 protected API 的请求。假设我有这个文件夹结构:
root/
node_modules/
dist/
app/
server/
app.js // Main server file.
src/
app/
assets/
css/
img/
index.html
我想访问node_moduels/
, dist/app/
和assets/
来自index.html
。如果网址如下所示,那就太好了:http://localhost:port
和app.js
不必直接位于 root/
。是否可以使用 express.static()
?如果是的话你会怎么做?如果不是,上面提到的文件夹结构需要更改什么?
最佳答案
app.js
可以去任何地方。只需在您的 package.json
脚本中引用它,例如:
...
"scripts": {
"start": "node dist/server/app.js"
},
...
您可以有多个静态文件夹。使用相对于 app.js
的目录。例如:
var app = express();
app.use(express.static(__dirname + '/../../src'));
app.use(express.static(__dirname + '/../../src/assets'));
然后您将提供src/index.html
,它可以直接引用src/assets
中的 Assets 。尽管这是可能的,但最好调整布局以匹配其服务方式并使用单个根。特别是,提供 node_modules
文件夹似乎是一个坏主意。 npm 用于服务器端代码,也许您应该使用 Bower 来管理客户端包。
关于javascript - Express 中的多个静态资源目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34323286/