有时我会点击我的应用程序中的链接,并且加载的* .css和* .js文件指的是错误的控制器。如果我刷新页面,立即修复,但我不想告诉我的用户可能需要偶尔刷新页面。
这是在我的应用程序布局中加载内容的地方:
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= stylesheet_link_tag params[:controller]
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= javascript_include_tag params[:controller]
资产加载在我的assets.rb启动器
中Rails.application.config.assets.paths << Rails.root.join('vendor', 'assets', 'flash')
%w( comments contact_types ensembles favorite_instruments fields gds gigs instuments
rank_members recruit_statuses scores seasons section_notes sections static students
announcements ).each do |controller|
Rails.application.config.assets.precompile += ["#{controller}.js", "#{controller}.css"]
end
对我来说很奇怪,有时候它会起作用,而其他时候却不起作用。我假设我有一些页面加载的宝石问题。我使用的是turbolinks
,spring
和quiet_assets
。我不认为任何其他宝石都会触及资产。
答案 0 :(得分:2)
TurboLinks拦截请求并仅提取文档正文,&#34;无缝地&#34;将其替换为DOM。它没有触及<head>
,因此在您完全重新加载页面并使用相应的<head>
获取新文档之前,您的JavaScript包含不会更改。
TurboLinks(和Rails)假设您将拥有一个JavaScript捆绑包,而不是很少有条件的JavaScripts。您将不得不采用Rails方式,并停止使用许多小清单,或关闭TurboLinks。