我有一个 Rails 应用程序,在 app/assets/javascripts 文件夹中有 50 个左右的 js 函数组织在单独的文件中。
我现在开始为移动访问者重新制作某些页面,使用以下方法在 Controller 中检测它们:
def mobile_agent?
request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(iPhone|iPod|BlackBerry|Android)/]
end
并为它们提供在内容方面与“桌面” View 完全不同的单独 View 。
我不希望用于桌面访问者的 javascript 文件(及其代码)为移动访问者加载,反之亦然。
一种方法可能是跳过加载 js-assets alltogether
<%= javascript_include_tag "application" unless mobile_agent? %>
但是我应该把我的移动 js 文件放在哪里?
或者有什么更好的建议?
最佳答案
您可以拥有任意数量的 list 文件。只需将它们放在 /app/assets/javascripts 中,它们就会自动编译。你可以拥有:
mobile.js:
//= require sharedjs
//= require mobilejs
桌面.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/