2015-01-26 1 views
4

JSON 파일을 호출하기 위해 PHP에서 제공하는 루트 디렉토리 경로가 필요한 javascript가 있습니다. 이 코드는 공공 /의 JS 또는 내 template.blade.php 내에서 할 필요가있는 경우Laravel javascript 위치가 뷰 또는 공개이어야합니다.

잘 모르겠어요?

public/js 인 경우 다음과 같이 절대 경로를 지정해야하므로 매번 디렉토리 이름이나 도메인을 변경하려고 할 때 경로도 변경해야합니다.

URL : "/ myBookstore로/공공/API/도서 형 /"나는 template.blade.php에 넣어 경우

<script> 
    $().ready(function(){ 
    $("#book_type").keyup(function(){ 
     $.ajax({ 
      type: "GET", 
      url: "/myBookStore/public/api/book-types/" + $("input[name=book_type]").val(), 
      dataType: "json", 
      success: function(json){ 
       //do stuff 
      } 
     }); 
    }); 
}); 
    </script> 

, 난을 지정 URL::to('/')를 사용할 수 있습니다 기본 URL. 그러나 공용 폴더의 외부 번호 OUTSIDE이어야합니다. 좋은 실행인지 확실하지 않습니다.

template.blade.php

<script> 
    $().ready(function(){ 
    $("#book_type").keyup(function(){ 
     $.ajax({ 
      type: "GET", 
      url: {{ URL::to('/') }} + "/api/book-types/" + $("input[name=book_type]").val(), 
      dataType: "json", 
      success: function(json){ 
       //do stuff 
      } 
     }); 
    }); 
}); 
    </script> 
+1

내 자바 스크립트 파일은 일반적으로 'public/assets' 폴더에 있습니다. 따라서 URL :: asset ('assets/file.js ')를 통해 호출 할 수 있습니다. –

답변

6

는 단순히

<meta name="base_url" content="{{ URL::to('/') }}"> 

를 작성하고 자바 스크립트와이 메타 태그의 내용을 읽어 보시기 바랍니다.

jQuery를 :

var url = $('meta[name="base_url"]').attr('content'); 

자바 스크립트 : 당신이 공개 JS 폴더에 자바 스크립트가 여전히 올바른 URL을 항상 얻을 수

var url = document.getElementsByName('base_url')[0].getAttribute('content') 

이 방법.

+0

좋은 아이디어! js 파일이 항상 공용 폴더에 있어야한다고 제안 하시겠습니까? 어떤 방법이 최선이라고 생각합니까? –

+0

나는 공공/js에서 그들을 minified하고 그것이 나를 위해 노력하고 있습니다, 내 js에서 PHP를 혼합 피하려고 – baao

+1

대단히 감사합니다,이 내 생명을 구 했어요. 그것은 매우 간단하지만 매우 유용합니다 !! –

관련 문제