想让前端 js file 被浏览,希望能够指定特定资料夹。
发布于 10 年前 作者 grass0916 3708 次浏览 最后一次编辑是 8 年前

前辈晚安,我想要把前端 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 回复

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

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

@MiguelValentine @nodejser

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

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

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

回到顶部