我有一个 javascript 需要 PHP 提供的根目录路径来调用 JSON 文件。
我不确定这段代码应该在 public/js 还是在我的 template.blade.php 中?
如果它在 public/js 中,那么我必须指定如下所示的绝对路径,因此每次我想更改我的目录名称或域时,我也必须更改路径。
url: "/myBookStore/public/api/book-type/"
<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。但是它必须在公用文件夹的外部,我不确定这是否是好的做法?
模板.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读取这个meta标签的内容。
jQuery:
var url = $('meta[name="base_url"]').attr('content');
JavaScript:
var url = document.getElementsByName('base_url')[0].getAttribute('content')
这样你就可以将你的 javascript 放在你的公共(public) js 文件夹中,并且仍然始终获得正确的 url。
关于php - Laravel javascript 位置应该可见或公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28154687/