我正在使用unicorn来提供sinatra应用程序,前端使用的是bootstrap.js和jQuery(UI)。
目前,当我在本地机器上运行应用程序并从本地机器访问页面时,一切正常。但是,我让同事从局域网上的机器连接,他们的结果是不同的。目前还不清楚究竟什么加载,什么不加载,但有一件事是肯定的:并非所有的 JavaScript 都将用于远程机器。主页使用 jQueryUI 选项卡,但是当页面加载到除服务器之外的任何主机上时,它会在没有它们的情况下呈现(相反,有一个带有链接的项目符号列表)。
这些文件由 Sinatra 提供的 ERB 文件中.js
的普通 HTML 标记引用。<script>
unicorn 的输出表明 js 文件正在被请求并正确发送(我正在为每个文件获取 HTTP 200 状态):
xxx.xxx.xxx.xxx - - [18/May/2012 09:41:12] "GET /js/jquery-1.7.2.min.js HTTP/1.1" 200 94840 0.0257
xxx.xxx.xxx.xxx - - [18/May/2012 09:41:12] "GET /js/jquery-ui-1.8.20.custom.min.js HTTP/1.1" 200 206731 0.0113
xxx.xxx.xxx.xxx - - [18/May/2012 09:41:12] "GET /js/bootstrap.js HTTP/1.1" 200 50089 0.0056
每个文件的本地权限为 755,位于 [app_root]/public/js。
显然,我的问题可能与Sinatra 或 Unicorn 无关,但这是我目前的情况。如果有什么我应该调查的,或者是否应该在问题中添加更多信息,请告诉我。