css - 导航到另一个 Rails 应用程序后,临时应用来自一个 Rails 应用程序的 Assets

标签 css ruby-on-rails passenger

我刚刚开始使用 Ruby (2.3)、Rails (5)、Apache (v2.2) 和 Passenger。 我发现加载 CSS 文件时出现故障:当我导航到另一个 Rails 应用程序时,来自一个 Rails 应用程序的 CSS 和 JavaScript 被暂时保留。 对于这样一个奇怪的问题,我还没有找到搜索词的神奇组合。

详情如下: 我有一个名为“Index”的 Rails 应用程序,它显示了指向其他 Rails 应用程序的链接列表。 我修改了索引的 CSS(使用 SCSS)以使 UI 更漂亮。

当我单击索引链接时,会显示预期的 Rails 应用程序,但不知何故保留了索引页面中的 CSS。 如果我按 F5,页面会刷新并停止使用索引页面中的 CSS。

每当我点击从索引到任何 Rails 应用程序的链接时,都会出现此问题。
如果我在索引页面和任何 Rails 应用程序之间来回切换,每次都会出现此问题。

它发生在 Chrome 和 Firefox 中。 我已将以下行添加到我的 passenger.conf 的末尾。 (我目前正在通过 https://.../xyz 访问我的新索引页面。)

    Alias /xyz /var/www/html/index/public
    <Location /xyz>
      PassengerBaseURI /xyz
      PassengerAppRoot /var/www/html/index
    </Location>
    <Directory /var/www/html/index>
      Options FollowSymLinks
      Allow from all
    </Directory>

如果我单击索引链接并检查新加载页面的源代码,我可以从\xyz(我的索引页面)中看到 Assets (.css 和 .js)。 新加载的页面不了解索引页面,所以我无法弄清楚它们是如何提取这些 Assets 的。 如果我按 F5(重新加载页面),\xyz Assets 就会消失。 我不知道这是 Passenger 的东西、Rails 的东西还是 CSS 的东西。

感谢您的帮助。

最佳答案

当有人注意到 JavaScript 意外地参与了跟踪我的链接时,启示就来了。 我的索引页面使用的是 Turbolinks,它使用 AJAX 加载我导航到的 Rails 应用程序。 AJAX 调用保留了现有的 .css 和 .js Assets 。 按 F5 导致页面完全重新加载,从而消除了不需要的 Assets 。

就我而言,解决方案是不在我的索引页面上使用 Turbolinks。

关于css - 导航到另一个 Rails 应用程序后,临时应用来自一个 Rails 应用程序的 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41289375/

相关文章:

ruby-on-rails - Ruby on Rails 第一步

ruby-on-rails - Nginx 和 passenger root 指令不适用于 Capistrano 3。当前版本的符号链接(symbolic link)中断应用程序

css - 消失的子菜单

mysql - 无法连接到 'myhost.com' 上的 MySQL 服务器 (4)

ruby-on-rails - 创建一个像 Devise 的 current_user 一样的方法以在任何地方使用

ruby-on-rails - 用 capybara 填充隐藏区域

ruby-on-rails - 如何使用 nginx 配置 phusion passenger 以支持 rails 中的 ssl?

javascript - 如何检测伪元素上的 animationend 事件?

css - 指定旧版 `inline-block` 显示值的新方法是什么?

javascript - Z-index 大于 Fancybox?