Расположение Laravel Javascript должно быть на виду или публично

У меня есть 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>

4

Решение

Просто создайте

<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.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]