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

时间:2014-04-16 00:21:01

标签: javascript image symfony path assets

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

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

但我遇到以下错误

    "NetworkError: 404 Not Found - mywebsite.com/bundles/web/app_dev.php/project/1/assets
   /images/linkArrow.png"

我的图片位于网络/资源文件下。

1 个答案:

答案 0 :(得分:10)

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

<script>
    var assetsBaseDir = "{{ asset('assets/') }}"
</script>

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

然后您可以在所有JavaScript文件中使用它,例如:

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

快乐的编码!