0

我的 application.html.erb 中有这个

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <%= stylesheet_link_tag "application","jquery.mobile-1.4.5"  %>
    <%= javascript_include_tag "application","jquery.mobile-1.4.5" %>
    <%= csrf_meta_tags %>
    <%= yield(:head) %>
</head>

我的 main/index.html.erb 文件有这个:

<%= content_for :head do %>
<style type="text/css">
    body {
        display: table;
        position: relative;
        width: 100%;
        height: 100%;
        background: url(/assets/main/background.jpg) no-repeat center center scroll;
        -webkit-background-size: cover;
        -moz-background-size: cover;
        background-size: cover;
        -o-background-size: cover;
    }
    .center-wrapper{
        margin: 0 auto;
        text-align: center;
        vertical-align: middle;
    }
    .ui-page {
        background: transparent;
    }
    .ui-content{
        background: transparent;
    }
</style>
<% end %>

这是根 URL 并正确加载。在此之后,如果我导航到任何其他 url 说 vendor/index.html.erb,由于 content_for (main/index.html.erb) 生成的 css 不会被清除。

我试图通过更改正文中使用的背景图像将一些 css 放入 vendor/index.html.erb 中。但是,它没有得到反映。它仍在使用由于 main/index.html.erb 中的 content_for 而生成的 css

4

1 回答 1

0

问题是我使用的是 jquery-mobile,它的工作方式与 turbolinks 相同。它只是重新加载页面中包含的部分

<div data-role="page">
    .......
</div>

需要将具有页面特定 css/js 的链接添加到页面的 head 标签中。为此,有必要在没有 ajax 的情况下调用页面并重新加载它。所以你需要使用:

rel="external", data-ajax="false" or target attributes
于 2015-03-06T09:01:07.840 回答