Laravel-当路径更改时,Javascript找不到图像

Laravel - Javascript can not find images when path changes

本文关键字:Javascript 找不到 图像 路径 Laravel-      更新时间:2023-09-26

在我的Laravel模板中,我包含一个JS文件。

在这里,我正在使用一个需要图像的插件。

    $.backstretch([
        "../img/header-tt-big.jpg",
        "../img/header-soccer-big.jpg"
    ]

所以..当我像这样进入我的"起始页"时,它正在工作:http://localhost/project/public/de/p1

当我去这里时,它不起作用http://localhost/project/public/de/p1/register

我将不得不添加另一个"../"表示 JS 文件中的所有图像。如何在不每次都手动更改数组的情况下完成这项工作?

谢谢:)

正如@ITroubs指出的,如果你在刀片模板(<script>标签)中有javascript代码,你可以而且应该使用asset()来生成URL。但是不要忘记额外的引号,所以javascript将其解释为字符串。

$.backstretch([
    "{{ asset('img/header-tt-big.jpg') }}",
    "{{ asset('img/header-soccer-big.jpg') }}"
]

但是,如果你将javascript代码放在单独的.js文件中(实际上是推荐的),你就不能这样做。相反,我建议在需要它的 JavaScript 代码之前在布局边栏选项卡模板中定义一个assetBaseUrl

<script>
    var assetBaseUrl = "{{ asset('') }}";
</script>

用法:

$.backstretch([
    assetBaseUrl + "img/header-tt-big.jpg",
    assetBaseUrl + "img/header-soccer-big.jpg"
]

如果你使用刀片,那么像这样写回伸展:

$.backstretch([
    "{{asset("img/header-tt-big.jpg")}}",
    "{{asset("img/header-soccer-big.jpg")}}"
]
好的,

我将脚本作为内联添加到脚本标签中。但我确实把它放在一个单独的文件中,比如p1-inline.blade.php。所以我可以包括那个。谢谢;)