我正在为我的移动网站使用JQuery Mobile,并通过Railscast#199
中的mobile_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.erb
和application.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 :(得分:0)
问题是jquery Mobile默认使用AJAX,所以我需要做的就是按如下方式禁用它。
<%= link_to "PC Site", :mobile => 0, "data-ajax" => "false" %>