【问题标题】:Express two static files directory表达两个静态文件目录
【发布时间】:2019-04-07 14:37:56
【问题描述】:

我的文件夹结构如下:

public
  css
  html
    main
      pllanet.html
server
  server.js
src
  img
  js

public 文件夹包含所有 HTML 和 CSS 代码,src 文件夹包含 img 和 js 文件。在 server.js 中,我使用 Express 来指示静态文件目录如下:

app.use(express.static(path.join(__dirname, "../public")));
app.use(express.static(path.join(__dirname, "../src")));

当我打开 pllanet.html 时,应用程序似乎没有选择第二个目录,因为图像没有加载。 在 pllanet.html 文件中,我的 css 路由如下:

    <link rel="stylesheet" href="../../css/main/pllanet.css">
    <link rel="stylesheet" href="../../css/main/home.css">

有人可以帮帮我吗?我真的被困住了。另外,我的文件夹结构是一个好习惯吗?

非常感谢你们的帮助。

【问题讨论】:

    标签: node.js express static-files


    【解决方案1】:

    你可以实现virtual path

    为 express.static 服务的文件创建一个虚拟路径前缀(路径实际上并不存在于文件系统中)

    app.use('/static', express.static('public'))

    在您的代码中,您可以:

    app.use('/public', express.static(path.join(__dirname, "../public")));
    app.use('/resource', express.static(path.join(__dirname, "../src")));
    
    // and link in html like
    <link rel="stylesheet" href="/public/css/main/pllanet.css">
    // img or js
    <link rel="stylesheet" href="/resource/img/someimage.jpg">
    

    【讨论】:

    • 嗨,娜迦,还有其他方法吗?我想我必须更新我所有的 img src 参考资料等。非常感谢
    • 不是我能想到的,因为您的参考是相对的,任何更改都可能涉及更改路径。
    猜你喜欢
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 2020-12-11
    • 2015-08-28
    • 2022-01-21
    • 2020-10-01
    • 1970-01-01
    相关资源
    最近更新 更多