ruby-on-rails – 资产不在隔离的引擎端点中工作
发布时间:2020-12-17 01:56:23 所属栏目:百科 来源:网络整理
导读:尝试访问作为中间件中的端点安装的隔离引擎内的资产时,我收到Not Found错误.我正在尝试从引擎内访问资产,因此应该能够找到它们. 我怀疑资产路由是不行的,因为我将某个域上的请求路由到端点的方式: require 'addressable/uri'class AdminRouter def initiali
尝试访问作为中间件中的端点安装的隔离引擎内的资产时,我收到Not Found错误.我正在尝试从引擎内访问资产,因此应该能够找到它们.
我怀疑资产路由是不行的,因为我将某个域上的请求路由到端点的方式: require 'addressable/uri' class AdminRouter def initialize(app) @app = app end def call(env) request = ActionDispatch::Request.new(env) # Allow requests to the admin system through without going any further if request.host == Rails.application.config.admin_address Admin::Engine.call(env) else @app.call(env) end end end 我这样做是因为我不希望主应用程序可以访问管理应用程序路由,反之亦然.它运作良好,而不是资产. 解决方法
看起来没有资产中间件. action_pack循环遍历每个资产,并在主路由器中预先指向机架端点的路由:
/gems/actionpack-3.2.22.2/lib/sprockets/bootstrap.rb app.routes.prepend do mount app.assets => config.assets.prefix end /gems/sprockets-2.2.3/lib/sprockets/server.rb 这反过来又为其他事物服务. 因此我的Admin :: Engine无法访问路由的原因是因为它们在应用程序启动时永远不会添加. 我的解决方法是使用asset_host为资产服务器指定一个特殊的主机名.然后我将请求路由到此主机到主应用程序而不是管理引擎. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |