Javascript 智能植根于Apache2上的Sinatra应用程序

Javascript 智能植根于Apache2上的Sinatra应用程序,javascript,jquery,ruby,apache,sinatra,Javascript,Jquery,Ruby,Apache,Sinatra,在本地Apache2上,我有多个应用程序。我的httpd.conf如下所示: <VirtualHost *:80> ServerName localhost DocumentRoot /var/www/ RackBaseURI /app1 RackBaseURI /app2 RackBaseURI /app3 </VirtualHost> $(document).ready(function(){ $("#a_button").click(fu

在本地Apache2上,我有多个应用程序。我的httpd.conf如下所示:

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /var/www/

  RackBaseURI /app1
  RackBaseURI /app2
  RackBaseURI /app3
</VirtualHost>
$(document).ready(function(){
  $("#a_button").click(function(){
    $("#some_div").load("/app1/some_action");
  });
});
在/var/www/directory中,我有指向每个应用程序的公用文件夹的符号链接。(app1/public-->名为app1的链接,app2/public-->名为app2的链接,等等)

如果打开localhost/app1,则启动操作(获取app1的“/”)

到目前为止一切正常。在view main.erb(加载在get'/'aciton中)中,我正在从public/js目录加载一些Java脚本

这就是我的问题。我必须这样加载它们(关注src=“/app1/…”):

在服务器上时,必须如下所示:

<script type="text/JavaScript" src="/js/jquery.js"></script>
$(document).ready(function(){
  $("#a_button").click(function(){
    $("#some_div").load("/some_action");
  });
});

您可以创建帮助器方法,根据环境为URL添加适当的前缀,或者使用sinatra帮助器。

它只解决了我一半的问题。它没有修复javascripts——问题中添加了详细信息。
<script type="text/JavaScript" src="/js/jquery.js"></script>
$(document).ready(function(){
  $("#a_button").click(function(){
    $("#some_div").load("/app1/some_action");
  });
});
$(document).ready(function(){
  $("#a_button").click(function(){
    $("#some_div").load("/some_action");
  });
});