我有一个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/