首页 > 解决方案 > 快递不包括资产

问题描述

我正在尝试使用 express 将资产加载到我的 EJS 文件中,但它不起作用。我只是收到消息

无法获取 /assets/main.css

即使我在我的主应用程序中制作了加载程序:

app.use(express.static(path.join(__dirname, './assets'))); 打印路径后,我看到它正确并且文件存在。所以使用后

<link href="assets/main.css" rel="stylesheet">我无法访问该文件。问题可能出在哪里?

标签: node.jsexpress

解决方案


请参阅在 Express 中提供静态文件

现在,您的app.use(...)声明是说:我希望在./assets导航到我的应用程序时提供目录,换句话说,当我打开浏览器时http://localhost,提供文件夹中的任何内容./assets

然后,您尝试访问位于 的文件main.csshttp://localhost/assets/main.css它不在那里,它在http://localhost/main.css

您有 2 个选项:

  1. 更改您的<link>标签以指向资产实际所在的位置:
<link href="main.css" rel="stylesheet">
  1. 更改您以在不同的端点app.use()托管文件夹:./assets
app.use('/assets', express.static(path.join(__dirname, './assets')));

推荐阅读