【问题标题】:rails assets: homepage doesn't load assetsrails assets:主页不加载资产
【发布时间】:2015-09-10 18:05:58
【问题描述】:

我有一个奇怪的问题。在主页 (https://seekthelordca.org/) 上,所有内容(资产)都正确加载(图 1)。然后,如果我点击导航栏的另一个链接(“期刊”),然后单击“主页”返回主页,则资产(css)无法正确加载(图 2)。我有 2 个模板布局; 1 个用于主页,1 个用于其余部分。

我这样称呼我的样式表:

<%= stylesheet_link_tag    'bootstrap_3_2.css', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css', 'style.min.css','responsive.min.css','demo.css',  media: 'all'%>

但是看起来很奇怪的是,当我查看主页的源代码并单击所有加载的每个 CSS 链接时。

转到其他链接并单击返回“主页”时的结果

【问题讨论】:

    标签: ruby-on-rails asset-pipeline


    【解决方案1】:

    谢谢,这是一个有趣的 2 分钟拼图。

    请查看下面的网络日志。这是第一次加载:

    然后单击另一个链接并再次返回,这是日志:

    那么,有什么区别呢?那么首先要注意的是正在加载css,并且相同的4个JS文件以相同的顺序:

    • JQuery v1.11.0-pre
    • 引导程序
    • 砌体
    • 演示

    但是,在从站点上的另一个链接加载时,您将加载第二个 JQuery,它是不同的版本 (2.1.3)。您还加载了另一个使用此 JQuery 并加载 Sizzle 的 JS(它称为 bookstore.js。其中一个很可能会弄乱您的布局。我怀疑它是 JQuery 的混合版本。

    按照 cmets 中的建议,添加此行应防止资产从该页面的其他页面中包含:

    添加到 config/environments/production.rb: config.action_view.cache_template_loading = false

    【讨论】:

    • 感谢@ABrowne 检查日志。因此,我将 jquery 更改为两种布局都相同,但 jquery.min.js 在返回主页时不会加载。
    • 我看到你已经改变了它们,这很好。但是,您仍然通过路由在页面上加载 jQuery 两次。请问 bookstore.js 的目的是什么?一旦您导航到另一个页面,它似乎就会被包含在内,并在返回主页时粘在标题上。如果您查看主页的来源,则没有提及,但是如果您检查该页面,您可以清楚地看到它包含在标题中。请查阅此内容以确保您仅在需要的页面上包含该 javascript:railsapps.github.io/rails-javascript-include-external.html
    • 感谢 ABrown!现在它可以工作了。在此帖子stackoverflow.com/a/13975092/2581266 之后,您可以添加到您的答案中,将config.action_view.cache_template_loading = false 放在config/environments/production.rb 中,以便在不同布局之间清除资产
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2021-10-14
    • 2020-09-14
    • 2019-10-22
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多