繁体   English   中英

使用 express js 服务 css

[英]Serving css with express js

我在使用 express js 服务 css 时遇到了很多麻烦。 我终于弄清楚了如何,但我有点困惑为什么我的新代码有效,但我的旧代码却没有。 这是我的新代码,它确实有效:

const express = require('express');
const path = require('path');

const app = express();
const port = process.env.PORT || 5010;

console.log(__dirname)
app.use('/public', express.static('public'));
app.set('views', path.join(__dirname, 'views'))

app.get('/', (req, res) => {
  res.sendFile(path.join(__dirname, 'views', 'home.html'));
});

app.listen(port, () => {
  console.log(`Server started on port ${port}`);
});

我的文件系统如下所示:

index.js
public
  css
    home.css
views
  home.html

最初而不是:

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

我有:

app.use(express.static(path.join(__dirname, 'public')));

为什么第二个版本有效,而第一个无效? 第二个版本中第一个参数的目的是什么? 此外,以防万一它有所作为,我正在 replit.com 上进行编码。

使用 1 个参数时

app.use(express.static(path.join(__dirname, 'public')));

此代码在当前目录的“公共”子目录中提供文件。 访问public/css/home.css文件的URL为: http://localhost/css/home.css //localhost/css262AE2AE26A28C

使用 2 个参数时

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

此代码还提供当前目录的“public”子目录中的文件,虚拟路径前缀为“/public”。 So, the URL to access the file at public/css/home.css is: http://localhost/public/css/home.css

我们可以将第一个参数更改为任何值,例如,如果我们有:

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

那么URL到同一个文件就变成: http://localhost/static/css/home.css

您可以在此处从官方文档中找到更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM