大佬教程收集整理的这篇文章主要介绍了node.js – ExpressJS在导航目录时错误地重写路径,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var express = require('express'); var app = express.createServer(); app.use("/public",express.static("/web/content")); app.use("/public",express.directory("/web/content")); app.listen(8888);
当您导航到localhost:8888 / public时,使用上面的超级简单@L_616_2@服务器/ web / content的内容将显示为链接列表.所以,例如:
.. index.html header.jpg js (folder) css (folder)
从那里,如果我点击index.html或header.jpg它们显示正确,但点击任一文件夹将导航到(例如)localhost:8888 / js,即使该链接明显导致localhost:8888 / public / js .进一步检查后发现请求被发送到正确的路径(/ public / js),但服务器返回301 – Moved PeRMANently响应,然后将浏览器重定向到/ js,后者继续显示错误页面,因为内容无法找到. (不完全是?)
尝试请求这些文件夹下的特定文件(即:localhost:8888 / public / js / main.js)工作正常,并没有相同的问题.
令人抓狂的部分是它在我的开发盒上做了一段时间,然后简单地……停止了.不知道为什么.但是,在尝试部署时,生产服务器开始出现相同的问题,即使我无法在我的开发环境中重现它.有谁知道为什么Express似乎有意将我的URL重写为错误的东西?
然而,真正的问题是静态处理程序在目录中间件之前起作用,这是声明中间件的顺序的直接结果.因此,简单地翻转中间件声明就像这样:
app.use("/public",express.directory("/web/content")); app.use("/public",express.static("/web/content"));
解决了这个问题.
现在,我之前已经尝试了这个,但没有意识到我之前发送的301已被缓存,因此浏览器在重新定向之前甚至触摸服务器.翻转订单并清空缓存后,我能够正确导航目录结构.
叹气如果我因为浏览器缓存而遇到的每个“错误”都有一美元…
以上是大佬教程为你收集整理的node.js – ExpressJS在导航目录时错误地重写路径全部内容,希望文章能够帮你解决node.js – ExpressJS在导航目录时错误地重写路径所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。