我有一个简单的投资组合网站,它只是一组静态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这是一个好主意,但我不知道如何将其绑定/路由到域上的特定位置。例如,表单可能会向 example.com/contact 提交AJAX请求,然后只发送电子邮件。
问题是,我可以处理请求的所有其他Rails应用程序都在不同的域上运行,所以我不能直接使用AJAX调用其他应用程序,我需要创建一个此域名上的单独脚本。
我知道我可以重写整个静态网站,以便在Sinatra上运行,这将消除这个问题,但我宁愿选择一些简单的方法,因为它只是一个简单的联系表单。
答案 0 :(得分:0)
另一种选择是使用EmailMeForm等联系表单处理服务。似乎有几个类似的系统可用。当然,它并不像滚动你自己的系统那样“酷”。但它可以用于您的静态网站目的。
答案 1 :(得分:0)
AddHandler cgi-script .rb
选项ExecCGI
#!/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}"
答案 2 :(得分:-2)
使用sinatra并了解如何定义路线。这正是你要找的。 p>