node.js - 无法获取 CSS 文件

标签 node.js express

我的目录设置是这样的:

app.js
vews
  home.html
  css
    style.css

我的主页文件是这样的:

<html>
<head>
  <title></title>
  <link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>

</body>
</html>

我的应用是这样的:

var io   = require('socket.io'),
    url  = require('url'),
    sys  = require('sys'),
    express = require('express'),
    http=require('http');

var app = express();
var server = http.createServer(app);
var socket = io.listen(server);

app.engine('.html', require('ejs').__express);
app.set('views', __dirname + '/views');
app.set('view engine', 'html');

app.get('/', function(req, res){
    res.render('home');
});

app.listen(4000);
sys.puts('server running ' + 'now ' + Date.now());

问题是当我运行应用程序时,无法加载 css 文件。

最佳答案

由于 .css 文件是静态文件,因此您必须将它们提供给客户端。但是,您不会将静态文件作为快速中间件提供。将以下中间件添加到您的 express 应用中,并将 css 文件夹移动到 public 目录下(您应该创建一个 public 目录)

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

所以你的最终目录结构应该是这样的

app.js
views
  home.html
public
  css
    style.css

别忘了 require path 模块

 var path = require('path')

关于node.js - 无法获取 CSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395742/

相关文章:

javascript - 如何在 Jade 中选择一个选项?

javascript - 找不到模块 'regenerator-runtime/runtime'

node.js - 如何修复数据未插入本地 dynamodb (NodeJS)

javascript - Node.js 与 Express : Push to an empty Array returns an empty Array

node.js - 发送缓冲区到客户端进行下载

node.js - Nodemailer 的邮件在 Azure 服务器上无法工作

javascript - 为什么 async/await 函数运行两次?

node.js - Node 中的 Mustache 和 Express

node.js - MongoError : Mod on _id not allowed

javascript - Express js 路线从未命中/:id