CNode

想让前端 js file 被浏览,希望能够指定特定资料夹。

Ggrass0916发布于12 年前最后回复12 年前5 回复4431 浏览0 收藏

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

M
MiguelValentine#1·12 年前

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

N
nodejser#2·12 年前

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

G
grass0916#3·12 年前

@MiguelValentine @nodejser

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

app.use('/stylesheet', express.static(__dirname + '/stylesheet'));
M
MiguelValentine#4·12 年前
引用 grass0916@MiguelValentine @nodejser 兩位晚安,我剛剛在的 stackoverflow 滾了一下,再看官方 express 的 API,可以用以下方式達成。不過兩位的意思是?
  • -,其实EXPRESS不是默认就有一个PUBLIC文件夹,就是用的这个静态的中间件。 没错,原来你就是想要这个意思,我想复杂了。
L
leapon#5·12 年前

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

参与回复
登录后即可参与回复。登录