Laravel - 当路径改变时,Javascript无法找到图像

ger*_*rti 3 javascript assets laravel

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

在这里,我使用的是需要图像的插件.

    $.backstretch([
        "../img/header-tt-big.jpg",
        "../img/header-soccer-big.jpg"
    ]
Run Code Online (Sandbox Code Playgroud)

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

当我到这里时它将无法工作 http:// localhost/project/public/de/p1/register

我必须为JS文件中的所有图像添加另一个"../".如何在不每次手动更改阵列的情况下完成此工作?

谢谢 :)

luk*_*ter 7

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

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

但是,如果您将javascript代码放在单独的.js文件中(实际上是推荐的),则无法执行此操作.相反,我建议您assetBaseUrl在需要它的javascript代码之前在布局刀片模板中定义一个:

<script>
    var assetBaseUrl = "{{ asset('') }}";
</script>
Run Code Online (Sandbox Code Playgroud)

用法:

$.backstretch([
    assetBaseUrl + "img/header-tt-big.jpg",
    assetBaseUrl + "img/header-soccer-big.jpg"
]
Run Code Online (Sandbox Code Playgroud)