javascript - Express 中的多个静态资源目录

标签 javascript node.js express

我想使用 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:portapp.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/

相关文章:

javascript - 在 GraphQL 查询中分组后如何限制和跳过标签列表页面的分页?

javascript - 我可以将iron-localstorage 和iron-ajax 与highcharts 一起使用吗

javascript - js中break语句的用法

javascript - 为什么网站在实际环境中会表现得很奇怪?

node.js - 使用 bool 必须在一个Elasticsearch查询中匹配并匹配_all

node.js - GCS 设置更改后,Cloud Build 不断失败

node.js - 来自远程浏览器的 AWS Ubuntu 实例上的 Node 错误

node.js - Mongoose - 带有 $set 标志的 findOneAndUpdate

javascript - 类型错误 : task is not a function in async js parrallel

node.js - Dockerized应用抛出读取操作超时错误并退出