Javascript Rails TurboLink在加载时中断css
希望标题没有误导。我的问题是-当使用turbolinks并单击链接时,加载的页面在一瞬间似乎没有样式。然后,css加载,一切正常。但这种行为对用户非常不友好 我可以通过移除TurboLink来解决这个问题,这是可行的。但是我依赖于TurboLink。请访问我代码的其他部分 我还可以通过将Javascript Rails TurboLink在加载时中断css,javascript,html,css,ruby-on-rails,turbolinks,Javascript,Html,Css,Ruby On Rails,Turbolinks,希望标题没有误导。我的问题是-当使用turbolinks并单击链接时,加载的页面在一瞬间似乎没有样式。然后,css加载,一切正常。但这种行为对用户非常不友好 我可以通过移除TurboLink来解决这个问题,这是可行的。但是我依赖于TurboLink。请访问我代码的其他部分 我还可以通过将method::get添加到每个=link\u到helper来解决这个问题 这两种方法都有点“老套”。有没有“正确的方法”来解决这个问题 您可以通过单击此处的徽标(左上)-(无需修改),然后单击三个导航链接之一(
method::get
添加到每个=link\u到
helper来解决这个问题
这两种方法都有点“老套”。有没有“正确的方法”来解决这个问题
您可以通过单击此处的徽标(左上)-(无需修改),然后单击三个导航链接之一(有method::get
)来体验我的意思
我发现类似的问题,但并没有提供解决方案
这是我的应用程序布局:
!!!
%html
%head
%title Uzhindoma - Front
= stylesheet_link_tag 'front', media: 'all', 'data-turbolinks-track' => true
= stylesheet_link_tag "https://api.mapbox.com/mapbox-gl-js/v0.20.0/mapbox-gl.css", :rel => "stylesheet"
= stylesheet_link_tag "https://fonts.googleapis.com/css?family=Open+Sans:400,600,700", :rel => "stylesheet"
= csrf_meta_tags
%body{class: "#{controller_name} #{action_name} g-body"}
.g-content
=render 'front/navigation/header'
/ Rendering errors
%section
-flash.each do |name, msg|
=content_tag(:div, msg, class: "alert alert-#{name}")
=yield
=render 'front/navigation/footer'
= javascript_include_tag "https://api.mapbox.com/mapbox-gl-js/v0.28.0/mapbox-gl.js"
= javascript_include_tag 'front', 'data-turbolinks-track' => true
= javascript_include_tag "https://widget.cloudpayments.ru/bundles/cloudpayments"
这是我的front.js
// Place all the behaviors and hooks related to the matching controller here.
// All this logic will automatically be available in application.js.
// You can use CoffeeScript in this file: http://coffeescript.org/
//= require jquery3
//= require jquery_ujs
//= require_tree ../../../vendor/assets/javascripts/front/custom/.
//= require_self
//= require_tree ../../../app/assets/javascripts/front/.
//= require turbolinks
如果我删除/=require turbolink
,那么链接工作正常,但我不会得到一些重定向(这些重定向依赖于TurboLinks.visit
方法)
为了决定与哪个控制器一起使用哪个布局,我有以下控制器结构:
controller/application\u controller.rb
controllers/front_controller.rb
controllers/admin\u controller.rb
controllers/front/…
controllers/admin/…
应用程序控制器:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
"front"
end
end
end
class FrontController < ApplicationController
layout 'front'
end
class AdminController < ApplicationController
layout "admin"
end
class ApplicationController
前端控制器:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
"front"
end
end
end
class FrontController < ApplicationController
layout 'front'
end
class AdminController < ApplicationController
layout "admin"
end
class FrontController
管理员/控制器:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
"front"
end
end
end
class FrontController < ApplicationController
layout 'front'
end
class AdminController < ApplicationController
layout "admin"
end
class AdminController
很棒的网站,我认为这是css中真正的滞后。如果您在您认为问题所在的地方添加一些代码片段,那就太好了。您是否使用不同的CSS样式表?你怎么把他们包括进来的?谢谢你的好话!我添加了我的应用程序布局。我使用其中两个-front
用于公共部分,而admin
用于管理部分。他们使用不同的css和js。你如何决定使用哪种css和Javascript?也许你调用了两次代码。我在控制器(更新的问题)伟大的网站上决定,我认为这是css的一个真正的滞后。如果您在您认为问题所在的地方添加一些代码片段,那就太好了。您是否使用不同的CSS样式表?你怎么把他们包括进来的?谢谢你的好话!我添加了我的应用程序布局。我使用其中两个-front
用于公共部分,而admin
用于管理部分。他们使用不同的css和js。你如何决定使用哪种css和Javascript?也许你调用代码两次。我在控制器中决定(更新问题)