3
我有一个服务器,它通过中间件几乎全部路由来检查是否已登录,但只适用于路由。我还希望它可以在public
目录中使用静态文件。我会怎么做呢?在ExpressJS中限制对静态文件的访问
更新:最好不要担心保护/public
文件夹中的内容,因为express会提供res.download(...)
功能。 Example on the Express.JS GitHub page
我有一个服务器,它通过中间件几乎全部路由来检查是否已登录,但只适用于路由。我还希望它可以在public
目录中使用静态文件。我会怎么做呢?在ExpressJS中限制对静态文件的访问
更新:最好不要担心保护/public
文件夹中的内容,因为express会提供res.download(...)
功能。 Example on the Express.JS GitHub page
澄清静态文件也是通过使用中间件来表达的服务器使用express.static
中间件。从理论上讲,你可以在中间件之前包含中间件来处理安全性。除了静态中间件的想法之外,您只能从公开以来使文件夹public
静态可用。
您可以在此处找到static。您可以重写它以允许您向其中注入中间件。
或者你可以自己写一个天真的静态文件路由器。
您是否曾尝试在静态中间件之前在中间件中注入自己的安全日志。
app.use(security);
app.use(express.static(dirname + '/public'));
对于我的计划我将'public'文件夹重命名为'static',并在名为'public'的文件夹中创建一个新文件夹。我想让中间件在“静态/公共”文件夹中提供任何文件,而无需登录,以便我可以使用css等登录表单。我要查找如何获得路线,但是如果你知道它离开你的头顶并在这里发布,它可能会节省一些时间。谢谢你的帮助! – Stephen 2011-04-16 17:09:20
@Stephen'express.static(dirname +'/ static/public')'会使这些静态。然后,您可以实现类似于'static'的中间件以用于'安全登录静态' – Raynos 2011-04-16 17:28:33