2013-02-11 93 views
2

我使用jQuery Mobile的我的移动网站,并通过mobile_device?方法从Railscast#199如何从jQuery Mobile的网站切换到PC网站

这一点,我的正常的完整的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 Mobile的网站切换到我的电脑网站。

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

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

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

编辑:

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

application.html.erb

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

application.mobile.erb

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

如何包含stylesshets? – raiis 2013-02-11 21:41:04

+0

嗨@rails。我添加了一个解释作为一个新的编辑。我有两个独立的应用程序布局,每个都有自己的样式表。 – umezo 2013-02-11 21:51:21

回答

0

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

<%= link_to "PC Site", :mobile => 0, "data-ajax" => "false" %>