js文件

时间:2018-02-08 08:40:09

标签: ruby-on-rails routes service-worker

我有一个使用webpack插件制作的ServiceWorker,该插件可通过http://example.com/packs/sw.js URL公开使用。由于我希望此服务工作者控制整个网站,我需要从http://example.com/提供服务。所以,没有redirect_to允许 我如何为此设置routes.rb

我尝试过的是:

已添加:get '/sw' => 'sw#show'routes.rb
创建控制器sw_controller.rb

require 'net/http'

class SwController < ActionController::Base
  def show
    respond_to do |format|
      format.all {
        uri = URI('http://example.com/packs/sw.js')
        res = Net::HTTP.get(uri)
        render inline: res
      }
    end
  end
end

我知道这很丑,但应该工作:

  • 访问http://example.com/sw.js后会发出No route matches [GET] "/sw.js"
  • 正在访问http://example.com/packs/sw.js正确打印出服务工作者
  • 正在访问http://example.com/sw正确打印出服务工作者
  • 同时访问http://example.com/sw.lol打印服务工作者

1 个答案:

答案 0 :(得分:1)

config / initializers / mime_types.rb 中尝试添加:

rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install

这应允许Mime::Type.register "text/javascript", :js 识别Javascript请求,否则将忽略该请求。

来源:http://api.rubyonrails.org/classes/ActionController/MimeResponds.html