想让前端 js file 被浏览,希望能够指定特定资料夹。
 发布于 11 年前  作者 grass0916  4272 次预览  最后一次回复是 11 年前  来自  

前辈晚安,我想要把前端 css, js 送到 client 端,

于是乎我写了一个判断副档名的简易 RegExp,

但是这样会导致后端全部的 js 也可以被浏览,


我想将特定资料夹的js, css (前端)供浏览就好,

请教各位前辈了。


config.js

app.get(/(.*)\.(css|js)/i, function (req, res) {
	res.sendfile(__dirname + "/" + req.params[0] + "." + req.params[1], function (err) {
		if (err)
			res.send(404);
	});
});

views/ 底下的所有 jade 档案与其子资料夹之 jade

link(rel='stylesheet', href='../stylesheet/bootstrap-3.2.0-dist/css/bootstrap.min.css')
link(rel='stylesheet', href='../stylesheet/bootstrap-3.2.0-dist/examples/carousel/carousel.css')
link(rel='stylesheet', href='../stylesheet/style.css')

.
.
.

script(src='../stylesheet/jquery-1.11.1/jquery-1.11.1.min.js')
script(src='../stylesheet/bootstrap-3.2.0-dist/js/bootstrap.min.js')
5 回复
MiguelValentine

req.url 判断 path 路径,多一层验证。

nodejser

我想说不要将静态资源交给node处理,你会骂我吗?

grass0916

@MiguelValentine @nodejser

兩位晚安,我剛剛在的 stackoverflow 滾了一下,再看官方 express 的 API,可以用以下方式達成。不過兩位的意思是?

app.use('/stylesheet', express.static(__dirname + '/stylesheet'));
MiguelValentine
  • -,其实EXPRESS不是默认就有一个PUBLIC文件夹,就是用的这个静态的中间件。 没错,原来你就是想要这个意思,我想复杂了。
leapon

CSS 的目录本来就是静态文件目录。