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

Laravel - Javascript can not find images when path changes

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

这里我用的是需要图片的插件

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

所以..当我像这样访问我的 "startpage" 时,它正在工作: http://localhost/project/public/de/p1

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

我必须为 JS 文件中的所有图像添加另一个“../”。我怎样才能在不每次都手动更改数组的情况下完成这项工作?

谢谢:)

如果你使用 blade 然后像这样写 backstretch:

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

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

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

但是,如果您将 javascript 代码放在单独的 .js 文件中(实际上是推荐的),您将无法这样做。相反,我建议您在布局 blade 模板 之前定义一个 assetBaseUrl 需要它的 javascript 代码:

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

用法:

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

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