我已经将我的代码简化为我可以做的最简单的express-js应用程序:

var express = require("express"),
    app = express.createServer();
app.use(express.static(__dirname + '/styles'));
app.listen(3001);

我的目录是这样的:

static_file.js
/styles
  default.css

然而,当我访问http://localhost:3001/styles/default.css时,我得到以下错误:

Cannot GET / styles /
default.css

我使用express 2.3.3和节点0.4.7。我做错了什么?


当前回答

我在用

app.use(express.static('public'))

当公共文件夹中没有名为index.html的文件时。

我在浏览器中得到以下错误:

“不能得到/”

当我将文件重命名为“index.html”时,它可以正常工作。

其他回答

我只是尝试这个代码和工作

const exp = require('express');
const app = exp();

app.use(exp.static("public"));

和工作,

工作前(未工作):

const express = require('express');
const app = express();
app.use(express.static("public"));

试试

尝试使用http://localhost:3001/default.css访问它。

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

你实际上给它的名称文件夹,即样式,而不是你的子url。

这对我来说很有用:

app.use('*/css',express.static('public/css'));
app.use('*/js',express.static('public/js'));
app.use('*/images',express.static('public/images'));

我在用

app.use(express.static('public'))

当公共文件夹中没有名为index.html的文件时。

我在浏览器中得到以下错误:

“不能得到/”

当我将文件重命名为“index.html”时,它可以正常工作。

在Nodejs项目中创建一个名为“public”的文件夹 文件夹中。 将index.html文件放入Nodejs项目文件夹。 把所有的脚本和css文件放到公共场所 文件夹中。 使用app.use(express.static('public')); 在index.html中正确的脚本路径为<script type="text/javascript" src="/javasrc/example.js"></script> .js

现在一切都好了。