我有一个Rails应用,在app / assets / javascripts文件夹中,有50个左右的js函数组织在单独的文件中。

我现在开始为移动访问者重新制作某些页面,并使用以下方法在控制器中检测到它们:

def mobile_agent?
  request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(iPhone|iPod|BlackBerry|Android)/]
end


并为其提供单独的视图,这些视图在内容方面与“桌面”视图完全不同。

我不希望桌面访问者使用的javascript文件(及其代码)为移动访问者加载,反之亦然。

一种方法是跳过一起加载js-assets

<%= javascript_include_tag "application" unless mobile_agent? %>


但是我该将移动js文件放在哪里?

还是有更好的建议?

最佳答案

您可以根据需要拥有多个清单文件。只需将它们放在/ app / assets / javascripts中,它们就会自动进行编译。你可以有:

mobile.js:

//= require sharedjs
//= require mobilejs


desktop.js:

//= require sharedjs
//= require desktopjs


然后在布局文件中,如下所示:

<%= javascript_include_tag "mobile" if mobile_agent? %>
<%= javascript_include_tag "desktop" unless mobile_agent? %>

关于javascript - 在Rails中为桌面和移动访问者提供单独的js代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19228200/

10-12 00:03
查看更多