내 로컬 Apache2에 여러 응용 프로그램이 있습니다. 내 httpd.conf 파일은 다음과 같습니다Apache2의 Sinatra 응용 프로그램에서 스마트 루팅
이<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/
RackBaseURI /app1
RackBaseURI /app2
RackBaseURI /app3
</VirtualHost>
모든 응용 프로그램의 config.ru이 같은 같습니다
require './app'
root_dir = File.dirname(__FILE__)
set :environment, ENV['RACK_ENV'].to_sym
set :root, root_dir
set :app_file, File.join(root_dir, 'app.rb')
disable :run
run Sinatra::Application
의/var/www /에서 디렉토리에서 나는 각각의 공용 폴더에 대한 심볼릭 링크가 내 응용 프로그램. (APP1/공공 -> 링크라는 APP1, APP2/공공 -> 링크라는 APP2 등)의 I/APP1이 localhost를 열면
가 시작 행동 ('/'APP1의 수)
get '/' do
erb :main
end
지금까지 너무 좋아서 모든 것이 작동합니다. main.erb보기 (get '/'aciton에서로드 됨) public/js 디렉토리에서 일부 javascript를로드하고 있습니다.
여기 내 문제가 나타납니다. 나는 ("/ ...../APP1"SRC = 초점) 그런 그들을로드 할 수 있습니다
<script type="text/JavaScript" src="/app1/js/jquery.js"></script>
나는 그런 그들을로드하고 싶습니다 동안 :
<script type="text/JavaScript" src="/js/jquery.js"></script>
을 이유는 내가 이퀄라이저에 내 애플리케이션을 업로드 할 때이다. Heorku 내 코드에서 모든 "/ app1"을 제거하기 전까지는 더 이상 작동하지 않습니다.
요약하면 로컬 루트에서 내 Sinatra app1은 localhost /를 취합니다. 실제 루트는 localhost/app1 /이어야하지만 root로 설정하십시오. 반면에 heroku에서는 root로 app1.heroku.com/을 사용합니다.
그래서 각 응용 프로그램을 로컬 호스트/appX/루트로 만들려면 어떻게해야합니까?
편집 :
이이 문제는 포함 자바 스크립트 (/ APP1/some_action) 는이 로컬 호스트는 이렇게 될 :
$(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");
});
});
내 문제 중 절반 만 해결합니다. 그것은 자바 스크립트를 수정하지 않습니다 - 세부 사항은 질문에 추가되었습니다. – gisek