Node.js路由配置引发jQuery版本异常的原因及解决方法咨询
问题解决方法
- 先把静态资源服务的代码放在所有路由最前面,确保静态文件(比如jQuery)能被正常匹配到,不会被通配路由拦截。比如用Express的话,要先写:
app.use(express.static('public')); // 替换成你的实际静态资源目录路径 - 把通配404路由移到所有路由的最后,Express是按顺序匹配路由的,这样只有前面的路由(包括静态资源请求)都匹配不上时,才会触发404页面返回。
- 修正通配路由里的语法错误:
你原来的代码存在引号使用错误、括号闭合错误,还有sendfile应该是sendFile(大写F),正确写法如下:
之前的错误写法里,app.get('*', (req, res) => { res.sendFile(__dirname + "/404.shtml"); });__dirname被包在了单引号里,会被当成字符串字面量而非变量,导致路径错误,这也是引发问题的诱因之一。
出现jQuery版本错误的原因是:通配路由拦截了jQuery文件的请求,把404.shtml返回给了浏览器,而你的404页面里可能引用了jQuery 3.0.0,浏览器就把404页面的内容当成了请求的jQuery文件解析,自然出现版本不匹配、代码失效的问题。
内容的提问来源于stack exchange,提问作者Gabe O'Neill
相关产品推荐
相关产品推荐

