我的目录设置如下:

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中间件提供.将以下中间件添加到您的express应用程序中,并将css文件夹移动到public目录下(您应该创建一个public directory)

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

最后的目录 struct 应该是这样的

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

不要忘了要求path个模块

 var path = require('path')

Node.js相关问答推荐

NPM:一般的npm二进制依赖可以静态构建吗?

如何在Reaction应用程序中查看存储的斑点图像?

使用NodeJS的DynamoDB中的BatchGetItem出现MultipleValidationError

谷歌应用程序脚本UrlFetchApp和nodejs-axios返回不同的结果;MyFitnessPal日记

为什么 mongoose 没有常规数组方法

NodeJS:zlib.gzipSync 在不同平台上给出不同的明文输出

无法将示例 Node.js 应用程序部署到 AWS Elastic Beanstalk

使用NodeJS通过服务账号列出Google Workspace用户

如何设置 Puppeteer Select 器的唯一性?

Prisma,只有一个用户的行可以有真值,@@unique(userId, isActive)

Indexeddb 获取所有不同于特定值的记录

图像存储在后端文件夹中,但使用 multer 和 react.js 在前端找不到

MongoDB 根据使用聚合的条件从嵌套数组中删除对象

无法通过谷歌Electron 表格 api( node js)中的服务帐户访问写入

Socket IOFlutter 未连接

在多个文件 node.js 之间共享和修改变量

Sequelize 基于关联的查找

如何在 node 中找到引用站点 URL?

Node.js -Firebase 服务帐户私钥不会解析

如何从 findOneAndUpdate 方法中获取更新的文档?