Symfony 2:带有资产的javascript文件中的图像路径

Akr*_*ram 1 javascript assets image path symfony

我正在尝试使用以下资产从我的symfony2项目中的js文件创建一个图像的路径:

   var arr = $('<img src="{{ asset("assets/images/linkArrow.png")}}">').css({
    position: 'absolute',
    ...
    });
Run Code Online (Sandbox Code Playgroud)

但我有以下错误

    "NetworkError: 404 Not Found - mywebsite.com/bundles/web/app_dev.php/project/1/assets
   /images/linkArrow.png"
Run Code Online (Sandbox Code Playgroud)

我的图片在web/assets文件下.

xii*_*dea 10

您不能在JavaScript文件中使用twig语法.如果您可以将脚本放在模板文件中,那么它就可以了.另一种干净的方法是为你的javascript定义资产基本路径变量.例如,要解决您的问题,您可以在布局模板中添加以下代码:

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

注意:如果要直接在js文件中引用变量,请确保在加载javascript文件之前定义此脚本

然后你可以在你所有的JavaScript文件中使用它像:

var arr = $('<img src="' + assetsBaseDir + 'images/linkArrow.png'+ '">').css({
    position: 'absolute',
    ...
});
Run Code Online (Sandbox Code Playgroud)

快乐的编码!