提问人:hybridspyda 提问时间:8/8/2023 最后编辑:hybridspyda 更新时间:8/9/2023 访问量:52
Rails 从 Turbolinks 升级到 Turbo
Rails upgrade from Turbolinks to Turbo
问:
我正在尝试将我的 Rails 应用程序 (v6.1.7.4) 从 Turbolinks 升级到 Turbo。 我使用链轮(4.2.0)。
我已经完成了将importmap.json包含到我的config文件夹的路径,并尝试通过“app/assets/javascripts”利用我已经存在的资产管道。
importmap.json文件
{
"imports": {
"application": "/assets/application.js",
"@hotwired/turbo-rails": "/assets/turbo.js"
}
}
涡轮.js
//= require turbo
application.html.erb 包含
...
<%= javascript_importmap_tags %>
<%= javascript_include_tag 'turbo', 'data-turbo-track': true %>
<%= javascript_include_tag 'application', 'data-turbo-track': true %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbo-track': true %>
...
控制器>关注点> turbo >重定向.rb
module Turbo
module Redirection
extend ActiveSupport::Concern
def redirect_to(url = {}, options = {})
turbo = options.delete(:turbo)
super.tap do
if turbo != false && request.xhr? && !request.get?
visit_location_with_turbo(location, turbo)
end
end
end
private
def visit_location_with_turbo(location, action)
visit_options = {
action: action.to_s == "advance" ? action : "replace"
}
script = []
script << "Turbo.cache.clear()"
script << "Turbo.visit(#{location.to_json}, #{visit_options.to_json})"
self.status = 200
self.response_body = script.join("\n")
response.content_type = "text/javascript"
response.headers["X-Xhr-Redirect"] = location
end
end
end
加载页面时,我在 Web 浏览器 (Chrome) 的控制台中看到以下错误: “未捕获的 TypeError:无法解析模块说明符”应用程序”。相对引用必须以“/”、“./”或“.”开头。/"."
答: 暂无答案
评论