2

我正在为我的移动站点使用 JQuery Mobile,并通过Railscast#199mobile_device?中的方法在该站点和我正常的完整 PC 站点之间切换

application_controller.rb

before_filter :prepare_for_mobile

def mobile_device?
  if session[:mobile_param]
    session[:mobile_param] == "1"
  else
    request.user_agent =~ /Mobile/
  end
end
helper_method :mobile_device?

def prepare_for_mobile
  session[:mobile_param] = params[:mobile] if params[:mobile]
  if mobile_device?
    if request.format == :js
      request.format = :mobilejs
    else
      request.format = :mobile
    end
  end
end

这种方法允许我从我的 JQuery 移动站点切换到我的 PC 站点。

<%= link_to "PC Site", :mobile => 0 %>

但是,它不加载 PC 站点样式表。因此,必须第二次重新加载页面才能使 CSS 生效。

如何在第一次尝试时加载 CSS?

编辑:

我的样式表分别添加到application.html.erbapplication.mobile.erb

应用程序.html.erb

<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>

应用程序.mobile.erb

<%= stylesheet_link_tag "mobile" %>
<%= javascript_include_tag "mobile" %> # this is where my jquery mobile js file is
4

1 回答 1

0

问题是 jquery Mobile 默认为 AJAX,所以我需要做的就是按如下方式禁用它。

<%= link_to "PC Site", :mobile => 0, "data-ajax" => "false" %>
于 2013-02-17T00:31:16.940 回答