Express static提供CSS和JS,但不提供图片

时间:2019-07-03 13:06:20

标签: node.js express

我已经设置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>

1 个答案:

答案 0 :(得分:0)

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