Laravel javascript 位置应该在视图中或 public
Laravel javascript location should be in view or public
我有一个 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。但是它必须是 public 文件夹的 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>
只需创建一个
<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 放在 public js 文件夹中,并且仍然始终获得正确的 url。
我有一个 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。但是它必须是 public 文件夹的 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>
只需创建一个
<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 放在 public js 文件夹中,并且仍然始终获得正确的 url。