【问题标题】:no route matches service-worker.js没有路线匹配 service-worker.js
【发布时间】:2023-03-16 17:21:01
【问题描述】:

我生成了 rails 应用程序,并立即收到了这条消息。我不知道 service-worker.js 是什么,但我认为它可以与一些默认 gem 捆绑在一起?

Started GET "/service-worker.js" for 127.0.0.1 at 2015-07-21 19:48:33 +0200

ActionController::RoutingError (No route matches [GET] "/service-worker.js"):
  actionpack (4.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  web-console (2.2.1) lib/web_console/middleware.rb:39:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.2.3) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.3) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.3) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
  rack (1.6.4) lib/rack/runtime.rb:18:in `call'
  activesupport (4.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  actionpack (4.2.3) lib/action_dispatch/middleware/static.rb:116:in `call'
  rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
  railties (4.2.3) lib/rails/engine.rb:518:in `call'
  railties (4.2.3) lib/rails/application.rb:165:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  rack (1.6.4) lib/rack/content_length.rb:15:in `call'
  rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
  /home/emkacf/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
  /home/emkacf/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
  /home/emkacf/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'

【问题讨论】:

  • 您如何管理您的 javascript 资产?
  • 嗯,我在标准 /app/assets/ 中有资产,但这只是一个从 ruby​​ mine 生成的新项目,这就是为什么我对这个 js 文件感到困惑
  • 这是在黑暗中拍摄,但您忘记安装 node.js 了吗?
  • 好吧,我之前已经安装了节点,因为我之前在那台机器上使用了带有 rails 的 ruby​​,但是我的男朋友在周末对节点和路径做了一些事情(他正在做一些事情并且需要最新版本,但是有一些问题) 所以也许这就是答案:D
  • 我尝试重新安装节点,但似乎没有帮助;s

标签: ruby-on-rails ruby routing routes


【解决方案1】:

我假设这是来自另一个使用 webworkers 的应用程序。如果您使用的是 Firefox,请转到 menu > web developer > service workers 并从那里取消注册 webworker(这是一种方法)。如果需要,其他应用程序将重新注册它。

【讨论】:

    【解决方案2】:

    这来自客户端,因此它来自已在浏览器中注册的服务工作者。

    打开 DevTools 并在控制台中运行 navigator.serviceWorker.getRegistration().then(r => r.unregister()) 以禁用它。

    【讨论】:

      【解决方案3】:

      我通过this gem 解决了同样的问题。

      1) 将gem 'serviceworker-rails' 添加到Gemfile

      2) 在控制台中运行bundle install

      3) 在控制台中运行rails g serviceworker:install

      4) 将match '/offline.html' 字符串添加到config/initializers/serviceworker.rb

      5)创建文件(即使是空的也足够了)public/offline.html

      就是这样。完成这些步骤后,错误消息消失了。

      【讨论】:

        猜你喜欢
        • 2019-12-12
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2016-02-04
        • 2012-10-11
        • 2017-07-13
        • 1970-01-01
        相关资源
        最近更新 更多