【问题标题】:Express static is serving CSS and JS but not imagesExpress static 提供 CSS 和 JS,但不提供图片
【发布时间】:2019-07-03 13:06:20
【问题描述】:

我已设置 express.static 在我的网站上提供静态资产。我在同一个目录中有 CSS、JS 和图像。 CSS 和 JS 正确提供,但图像不正确。

localhost 上,图像返回200 响应,但没有图像。 在生产中,他们返回 302 并且没有图像。

我的项目目录如下所示:

|- app.js - Main server file
|
|
|- client - All user facing files
      |
      |- admin - Admin front end
      |      |_ assets - Stores CSS, JS and images 
      |      
      |_ theme - Website front end
             |_ assets - Stores CSS, JS and images 

我用来为app.js 文件中的静态文件提供服务的代码是:

app.use('/admin/assets', express.static(`${__dirname}/client/admin/assets`));
app.use('/assets', express.static(`${__dirname}/client/theme/assets`));

我也试过了:

app.use('/admin/assets', express.static(path.join(__dirname, `client/admin/assets`)));
app.use('/assets', express.static(path.join(__dirname, `client/theme/assets`)));

在前端,我使用以下标记来尝试渲染图像:

<img src="/assets/avatar.png">

我无法弄清楚为什么这个或任何其他图像不起作用,但 js 和 css 可以。作为参考,以下标记成功呈现了 JS:

<script defer="defer" src="/assets/index.bundle.js"></script>

【问题讨论】:

  • 如果您在浏览器中打开它会怎样?你得到404吗? http://yourhost:yourport/assets/avatar.png
  • @GrafiCode 我得到304 Not Modified
  • 您确定 png 图像没有损坏吗?我的意思是,如果你在不同的图像上尝试它,也许是 jpeg,结果总是一样吗?
  • 非常感谢,它已损坏。我构建了一个将文件上传到客户端目录的 cli。它显然不适用于图像。所以图像在主题仓库中,但是当它们被推送到项目文件夹时,它们就坏了。
  • 祝你好运:)

标签: node.js express


【解决方案1】:

发生此问题的原因是存储在目录中的图像文件已损坏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2019-09-20
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多