1

我有一个 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 文件放在哪里呢?

或者有什么更好的建议?

4

1 回答 1

3

您可以拥有任意数量的清单文件。只需将它们放在/app/assets/javascripts中,它们就会自动编译。你可以有:

移动.js:

//= require sharedjs
//= require mobilejs

桌面.js:

//= require sharedjs
//= require desktopjs

然后在您的布局文件中,例如:

<%= javascript_include_tag "mobile" if mobile_agent? %>
<%= javascript_include_tag "desktop" unless mobile_agent? %>
于 2013-10-07T15:15:37.133 回答