【问题标题】:Rails is still trying to load a deleted assetRails 仍在尝试加载已删除的资产
【发布时间】:2023-03-29 22:25:01
【问题描述】:

我有一个 Rails 4 项目。根据post,“Rails 4 也没有源映射。据我所知,截至今天,这只是 Rails 5 的一部分。”

如果我使用 Sprockets 进行预编译,我想我必须在 Rails 4 中没有源映射。问题是我包含了一个供应商 jquery 库,其中包含它自己的源映射。位置在vendor/assets/javascripts/jquery.nanoscroller.js.map

每次我加载页面时,我都会收到此错误:

ActionController::RoutingError (No route matches [GET] "/assets/jquery.nanoscroller.js.map"):

这让我很烦,所以我从供应商那里删除了文件。现在该文件在任何地方都不存在。我的项目的任何资产目录中都没有 .map 扩展名。

然后我删除了public/assets 文件夹,以确保 Rails 不会从公共缓存资产中提供服务。它现在应该使用 Rack Middleware 来编译每个请求的资产,并且由于那个 .map 文件已经消失,它不应该被编译。但是,删除公共/资产并重新启动服务器后,我仍然收到此错误:

ActionController::RoutingError (No route matches [GET] "/assets/jquery.nanoscroller.js.map"):

我什至尝试将以下内容添加到开发中,以确保将其设置为 false:

config.serve_static_files = false

(使用此设置,它不应该提供来自公共/资产的文件)。

我在这里错过了什么?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这不是 Rails 问题。您的浏览器试图获取源映射。 根据这个https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map,您应该在 nanoscroller js 文件中找到一个神奇的注释。删除评论或在浏览器设置中禁用源映射。

    评论示例: //# sourceMappingURL=http://example.com/path/to/your/sourcemap.map

    浏览器的源地图设置:https://gist.github.com/jakebellacera/336c4982194bcb02ef8a

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 2011-09-21
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多