我已将代码缩减为我可以制作的最简单的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
和 node 0.4.7
. 我究竟做错了什么?
14 回答
default.css
应该在http://localhost:3001/default.css
app.use(express.static(__dirname + '/styles'));
中的styles
只是告诉express要在styles
目录中查找要提供的静态文件 . 它(不容易)然后形成它可用的路径的一部分 .在你的server.js中:
您已单独声明express和app,创建名为'public'的文件夹或您喜欢的文件夹,但您可以访问这些文件夹 . 在模板src中,您已将/ public(或命令文件夹的名称)的相对路径放入静态文件中 . 小心路线上的酒吧 .
这项工作对我来说:
试试
http://localhost:3001/default.css
.要在您的请求网址中包含
/styles
,请使用:查看this page上的示例:
我也有同样的问题 . 我用以下代码解决了这个问题:
静态请求示例:
我需要一个更简单的解决方案 . 它存在吗?
提供静态文件(css,images,js文件)只需两步:
note: 将css文件链接到html只需键入
<link href="file_name.css" rel="stylesheet">
如果我写这个代码
访问静态文件只需输入url:localhost:port / css / filename.css ex:http://localhost:8081/css/bootstrap.css
note 用html链接css文件只需添加以下行
我在我的应用程序中使用Bootstrap CSS,JS和Fonts . 我在应用程序的根目录中创建了一个名为
asset
的文件夹,并将所有这些文件夹放在其中 . 然后在服务器文件中添加以下行:这一行使我能够从
/asset
路径前缀加载asset
目录中的文件,如:http://localhost:3000/asset/css/bootstrap.min.css
.现在在视图中我可以简单地包含CSS和JS,如下所示:
这个对我有用
尝试使用http://localhost:3001/default.css访问它 .
你实际上是给它文件夹的名称,即样式而不是你的郊区 .
对我有用的是:
而不是在你的app.js中写 app.use(express.static(__dirname + 'public/images'));
只需写 app.use(express.static('public/images'));
即删除路径中的根目录名称 . 然后你可以在其他js文件中有效地使用静态路径,例如:
希望这可以帮助 :)
除此之外,请确保静态文件路径以/(ex ... / assets / css)...开头,以便在主目录(/ main)上方的任何目录中提供静态文件
我找到了我的css文件并添加了一个路径:
然后它似乎工作 .
如果您的设置
然后,
放入app.js
并参考你的style.css :(在一些.pug文件中):
Serving static files in Express
要提供静态文件(如图像,CSS文件和JavaScript文件),请使用Express中的
express.static
内置中间件功能 .功能签名是:
root参数指定从中提供静态资产的根目录 .
For example, use the following code to serve images, CSS files, and JavaScript files in a directory named public:
现在,您可以加载公共目录中的文件:
Express会查找相对于静态目录的文件,因此静态目录的名称不是URL的一部分 .
要使用多个静态资产目录,请多次调用
express.static
中间件函数:Express按照使用
express.static
中间件功能设置静态目录的顺序查找文件 .注意:为获得最佳结果,请使用反向代理缓存来提高服务静态资产的性能 .
To create a virtual path prefix (文件系统中实际不存在路径)对于
express.static
函数提供的文件,请指定静态目录的安装路径,如下所示:现在,您可以从/ static路径前缀加载公共目录中的文件 .
但是,您提供给
express.static
函数的路径是相对于启动节点进程的目录 .如果从另一个目录运行express应用程序,则使用要提供的目录的绝对路径更安全: