轨道-不正确的资产加载

Rails - Incorrect Assets Loading

本文关键字:加载 不正确 轨道      更新时间:2023-09-26

偶尔我会单击应用程序中的链接,加载的*.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]

以及资产加载到我的资产中的位置。rb initializer

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

我觉得奇怪的是,有时它能起作用,而其他时候却不会。我想我在一些页面加载方面有一个gem问题。我使用的是turbolinksspringquiet_assets。我认为其他的宝石都不涉及资产。

TurboLinks拦截请求并只获取文档的正文,将其"无缝"替换到DOM中。它不涉及<head>,因此在您完全重新加载页面并使用适当的<head>获取新文档之前,您的JavaScript包含不会发生更改。

TurboLinks(和Rails)假设您将拥有一个单独的JavaScript捆绑包,而不是许多小的有条件包含的JavaScripts。你要么走Rails的路,停止使用许多小清单,要么关闭TurboLinks。