【问题标题】:Laravel - Javascript can not find images when path changesLaravel - 路径更改时Javascript无法找到图像
【发布时间】:2015-01-19 15:37:44
【问题描述】:

在我的 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 文件中的所有图像添加另一个“../”。如何在不每次手动更改数组的情况下完成这项工作?

谢谢你:)

【问题讨论】:

    标签: javascript laravel assets


    【解决方案1】:

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

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

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

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

    用法:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2016-01-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-05
          • 2013-10-31
          • 1970-01-01
          • 2020-03-29
          • 1970-01-01
          相关资源
          最近更新 更多