快递不包括资产

时间:2018-06-05 14:24:38

标签: node.js express

我尝试使用快递将资源加载到我的EJS文件,但它不起作用。我只收到消息

  

无法获取/assets/main.css

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

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

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

1 个答案:

答案 0 :(得分:1)

请参阅Serving static files in Express

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

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

您有两个选择:

  1. 将您的<link>标记更改为指向资产的实际位置:
  2. <link href="main.css" rel="stylesheet">
    
    1. 将您的app.use()更改为托管其他终端的./assets文件夹:
    2. app.use('/assets', express.static(path.join(__dirname, './assets')));