无法使用带有node.js和express的静态文件

时间:2016-06-04 08:12:04

标签: javascript html css node.js express

我尝试使用node.js和express来创建聊天客户端,但是一旦我尝试使用外部CSS或JS文件,我就会遇到GET错误。

目前我的index.js为:

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var path = require('path');

app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});


io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

在我的index.html中,我使用:

<script src="/dropdown.js"></script> <link rel="stylesheet" type="text/css" href="/style1.css">

链接HTML中的文件。

我的代码结构是

index.js
index.html
public
    style1.css
    dropdown.js

我已经在stackoverflow上查看了一堆其他解决方案,但没有一个能够正常工作。我尝试过使用express.static / app.static和html文件中链接CSS / JS文件的各种组合的各种组合。所有这些都会导致GET错误。

2 个答案:

答案 0 :(得分:0)

而不是:

app.use(express.static(__dirname + '/public'));

试试这个:

app.use(express.static(path.join(process.cwd(), '/public')));

答案 1 :(得分:0)

创建的项目与您的代码和文件结构完全相同,并且有效。确保你已经正确地写了所有文件名,并且#34;显而易见&#34;东西。如果这没有帮助,您可以提供一些错误消息吗?