У меня есть JavaScript, который требует путь к корневому каталогу, предоставленный PHP для вызова файла JSON.
Я не уверен, должен ли этот код быть в общественные / JS или в моем template.blade.php?
Если это в общественные / JS, затем я должен указать абсолютный путь, как показано ниже, поэтому каждый раз, когда я хочу изменить имя своего каталога или домена, я должен также изменить путь.
URL: «/ myBookStore / public / api / тип книги /»
<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>
Если я положу это в template.blade.php, Я мог бы использовать URL::to('/')
указать базовый URL. Однако это должно быть ВНЕ из общей папки, я не уверен, что это хорошая практика?
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>
Просто создайте
<meta name="base_url" content="{{ URL::to('/') }}">
и прочитайте содержимое этого метатега с помощью javascript.
JQuery:
var url = $('meta[name="base_url"]').attr('content');
JavaScript:
var url = document.getElementsByName('base_url')[0].getAttribute('content')
Таким образом, вы можете иметь свой javascript в вашей общедоступной папке js и все равно постоянно получать правильный URL.
Других решений пока нет …