ruby - Sinatra、Unicorn 和服务 JavaScript

标签 ruby webserver sinatra unicorn

我正在使用 unicorn服务 sinatra应用程序,前端正在使用 bootstrap.jsjQuery(UI) .

目前,当我在本地机器上运行应用程序并从本地机器访问页面时,一切都是应该的。但是,我让同事从他们在 LAN 上的机器连接,他们的结果是不同的。究竟什么加载什么不加载有点不清楚,但有一点是肯定的:并非所有的 JavaScript 都将发送到远程机器。主页使用 jQueryUI 选项卡,但是当页面加载到服务器以外的任何主机上时,它在没有它们的情况下呈现(相反,有一个带链接的项目符号列表)。

.js文件由普通 HTML 引用 <script> Sinatra 提供的 ERB 文件中的标记。

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 相关的可能性,但这是我目前的背景。如果有什么我应该调查的,或者是否应该在问题中添加更多信息,请告诉我。

最佳答案

我认为问题出在 DSL 链接中,Sinatra 不理解 /js/jquery-1.7.2.min.js 路由,如果你的代码中没有描述它的话,但是只要它是静态文件,你就可以这样做:

set :public, File.dirname(__FILE__) + '/js'

这告诉 Sinatra 您的 /js 文件夹中的所有文件都是静态的,并且应该以正确的方式提供

关于ruby - Sinatra、Unicorn 和服务 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10653905/

相关文章:

ruby - 在 Ruby 中对哈希数组进行排序

ruby - 如何使用DataMapper `NOT LIKE` 子句?

ruby - 如何让 Twitter Bootstrap 的 Less 文件与 Sinatra AssetPack 一起使用?

ruby - 如何在 Capybara/Selenium 中模拟修改键组合 (Alt-Shift-P)?

xml - 我如何让 Nokogiri 了解我的 namespace ?

linux - 如何保持 Go Web 服务运行

webserver - 实现自定义 Web 服务器的 Java 库建议

javascript - 告诉我为什么我不应该这样做 : Sinatra API with Full JS/HTML Frontend

java - 如何找到在字符串中至少出现两次且不重叠的任意两个字母对

php - JS/PHP 日期时间和时区,在特定日期时间到期的用户评论