为什么我会收到此路由错误? ActionController :: RoutingError(没有路由与[GET]“ /assets/toastr.js.map”匹配):

时间:2019-04-11 00:49:53

标签: ruby-on-rails asset-pipeline sprockets

我在localhost和prod上看到了这个

ActionController :: RoutingError(没有路由与[GET]“ / assets / toastr.js.map”匹配):

我尝试将清单文件中的toastr.js.map包括在内:祝您好运。还尝试将文件重命名为toastr.map.js-立即开始在控制台中引发js错误。

有没有办法自动生成地图文件或忽略它们?

1 个答案:

答案 0 :(得分:1)

我最近遇到了类似的问题。我解决问题的方法是进入清单文件(例如public/assets/.sprockets-manifest-[md5hash].json,找到资产文件的逻辑名称,然后使用这些逻辑名称而不是绝对路径。

就我而言,解决方法是从/assets/中删除javascript_include_tag前缀。

尤其是在我的html文件中,我替换了该文件...

= javascript_include_tag "/assets/admin/events/index.js"

...与此...

= javascript_include_tag "admin/events/index.js"

...以及重新编译的资产。这似乎对我有用。

这里是我找到此解决方案的线程的引用:
Rails 5 + Heroku: Assets are not loaded in production, but works in localhost