本地搭建Rails应用遇showdown.min.js.map路由匹配错误求助
解决Rails开发环境中"No route matches [GET] for 'showdown.min.js.map'"错误
这个问题我之前在开发Rails应用时也碰到过,本质是浏览器加载showdown.min.js时会自动尝试请求对应的源映射文件,但路径配置不对,导致浏览器从当前控制器的路由(比如你的/binary/createRepository/)下去查找,而不是去正确的静态资源目录找,所以触发了路由错误。虽然不影响功能,但日志里一直刷错误确实很烦,下面是几个靠谱的解决办法:
1. 确保showdown.js的引入路径符合Rails Asset Pipeline规范
- 检查你的视图文件或者JS入口文件,引入showdown时要使用Rails的asset helper方法,比如:
不要用相对路径直接引入,这样Rails会自动把文件发布到<%= javascript_include_tag 'showdown.min' %>/assets/路径下,浏览器请求源映射文件时也会自动去正确的位置查找,而不是从当前控制器路由下找。 - 如果你是手动添加的showdown文件,要把
showdown.min.js放到app/assets/javascripts/目录下,这样Asset Pipeline才能正确处理它的路径。
2. 禁用浏览器的JavaScript源映射请求(临时调试用)
如果你只是想临时屏蔽日志里的错误,可以在浏览器开发者工具里关闭源映射功能:
- Chrome:打开DevTools → 右上角设置图标 → 找到「Enable JavaScript source maps」选项并取消勾选
- Firefox:打开调试面板 → 右上角设置 → 取消勾选「启用源映射」
这个方法只对当前浏览器生效,适合开发时临时用。
3. 添加对应的源映射文件
如果你需要源映射来调试showdown的代码,可以下载对应的showdown.min.js.map文件,把它和showdown.min.js放在同一个目录下(比如app/assets/javascripts/)。这样浏览器请求时就能找到这个文件,不会再触发路由错误。
4. 移除showdown.js中的源映射引用注释
打开showdown.min.js文件,查看最后一行是否有类似这样的注释:
//# sourceMappingURL=showdown.min.js.map
把这行注释删掉,浏览器就不会自动请求源映射文件了,自然也就不会再出现这个错误日志。
内容的提问来源于stack exchange,提问作者Suganya Selvarajan
相关产品推荐
相关产品推荐

