我刚刚开始使用 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/