【问题标题】:Multiple static assets directories in expressexpress中的多个静态资产目录
【发布时间】:2015-12-16 22:24:38
【问题描述】:

我想使用 express 向我的应用程序提供静态数据并处理对受保护 API 的请求。假设我有这个文件夹结构:

root/
  node_modules/
  dist/
    app/
    server/
      app.js // Main server file.
  src/
    app/
    assets/
      css/
      img/
    index.html

我想从index.html 访问node_moduels/dist/app/assets/。如果 url 看起来像这样那就太好了:http://localhost:portapp.js 不必直接在 root/ 中。是否可以使用express.static()?如果是的话,你会怎么做?如果没有,上面提到的文件夹结构需要改变什么?

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    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中的资产。即使有可能,最好调整布局以匹配其服务方式并使用单个根。特别是,提供node_modules 文件夹似乎是个坏主意。 npm 用于服务器端代码,也许你应该使用 bower 来管理你的客户端包。

    【讨论】:

    • 天哪,非常感谢。结果我犯了一个愚蠢的(我忘了斜线)错误,这就是我的配置无法正常工作的原因。
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 2022-07-01
    • 2018-06-22
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多