当使用不同的输出格式(html和移动)时,资产预编译如何工作?

时间:2013-02-12 11:27:43

标签: jquery-mobile ruby-on-rails-3.2 asset-pipeline passenger

我的应用程序有两个不同的用户界面,一个在PC上由标准浏览器调用时调用,另一个在移动设备调用时调用。 所以在我的资产目录中我有

assets
  javascripts
    application.js
    mobile
      application.js
  stylesheets
    application.css
    mobile
      application.css
      mobileapp.css

....
....

views
  layouts
    application.html.erb
    application.mobile.erb

清单文件是:

Javascript角/ application.js中

//= require jquery
//= require jquery_ujs
//= require_directory .

Javascript角/移动/ application.js中

//= require jquery.mobile
//= require_directory .

样式表/ application.css

*= require_self
*= require_directory .
*/

样式表/移动/ application.css

*= require jquery.mobile
*= require_directory .
*/

一切正常,但...... 当我使用移动设备调用应用程序时,当我进入生产模式(Apache / Passenger)时,我看到使用了移动应用程序布局,但未使用mobile / mobileapp.css中包含的syles。

我无法在移动设备上调试(没有firebug或谷歌浏览器开发人员工具)。 有没有办法知道乘客为移动设备提供的服务?我知道,我总是可以使用wireshark来嗅探网络数据包,但如果它存在一些更高级别的工具,我将不胜感激。

修改

也许现在我已经弄明白是什么导致了这个问题。 我知道jquery mobile在加载DOM之后就会“神奇”。 当应用程序由乘客(在预编译资产之后)提供给移动设备时, 提供了正确的页面和正确的应用程序布局,但Jquery mobile没有在DOM加载时初始化其所有元素,因此我的页面仍处于“混合”状态。

有这种问题的人解决了吗?

1 个答案:

答案 0 :(得分:0)

嗯,这不是我第一次提问,然后我也发了一个答案,还没有收到任何答案......

要捕获我将在移动设备上收到的页面的HTML代码而不使用Firebug移动平台等工具,我只需从命令行启动以下内容:

curl -A android http://www.mysite.com/mypage

我使用cURL的功能发送http请求,我控制正在发送的用户代理。 不像Firebug,但现在我知道哪个HTML实际上是发送到移动设备。