将Ruby脚本添加到AJAX静态网站的最简单方法

将Ruby脚本添加到AJAX静态网站的最简单方法,ruby,nginx,sinatra,Ruby,Nginx,Sinatra,我有一个简单的公文包网站,它只是一组静态HTML文件和一些jQuery 现在我正在尝试添加一个通过AJAX提交的简单联系人表单,因此我需要在服务器端以某种方式处理请求 整个过程都是在VPS上运行的,nginx上有许多其他Rails应用程序。如果我安装了PHP,只需添加一个简单的PHP文件并通过AJAX直接调用它就很容易了,但我真的不知道如何在Ruby中做到这一点 我基本上有 server { listen 80; server_name example.com; root

我有一个简单的公文包网站,它只是一组静态HTML文件和一些jQuery

现在我正在尝试添加一个通过AJAX提交的简单联系人表单,因此我需要在服务器端以某种方式处理请求

整个过程都是在VPS上运行的,nginx上有许多其他Rails应用程序。如果我安装了PHP,只需添加一个简单的PHP文件并通过AJAX直接调用它就很容易了,但我真的不知道如何在Ruby中做到这一点

我基本上有

server {
    listen 80;
    server_name example.com;
    root /var/apps/example/com;
}
对于静态网站,现在我需要说,contact.rb文件应该作为Ruby文件执行

我想也许使用Sinatra来实现这一点是个好主意,但我不知道如何将其绑定/路由到域上的特定位置。例如,表单可能会将AJAX请求提交到example.com/contact,然后example.com/contact会发送电子邮件

问题是,我可以处理请求的所有其他Rails应用程序都运行在不同的域上,因此我不能直接使用AJAX调用其他应用程序,我需要在此域上创建单独的脚本


我知道我可以将整个静态网站重写为在Sinatra上运行,这将消除这个问题,但我更喜欢用一些简单的方法来完成,因为这只是一个简单的联系表单。

使用Sinatra并了解如何定义路线。这正是您想要的。

使用sinatra并了解如何定义路线。这正是您想要的。

另一种选择是使用电子邮件表单等联系人表单处理服务。似乎有几种类似的系统可用。当然,它并没有你自己的系统那么酷。但它可以用于静态网站目的


另一个选择是使用像EmailMeForm这样的联系人表单处理服务。似乎有几种类似的系统可用。当然,它并没有你自己的系统那么酷。但它可以用于静态网站目的

在apache httpd.conf中: AddHandler cgi脚本.rb 选项执行CGI

#!/usr/bin/env ruby
# in test.rb
require 'cgi'
puts "Content-Type: text/html \n\n" #wichtig

params = CGI.new
query = params['q'] #simple as that!

$stderr.puts "Remote Addr: #{params.remote_addr}"
在apache httpd.conf中: AddHandler cgi脚本.rb 选项执行CGI

#!/usr/bin/env ruby
# in test.rb
require 'cgi'
puts "Content-Type: text/html \n\n" #wichtig

params = CGI.new
query = params['q'] #simple as that!

$stderr.puts "Remote Addr: #{params.remote_addr}"

我知道如何设置路由,问题是我需要在nginx域的特定路径上设置整个sinatra应用程序。我知道如何设置路由,问题是我需要在nginx域的特定路径上设置整个sinatra应用程序。