javascript - 交响乐 2 :image paths in javascript file with assetic

标签 javascript image symfony path assets

我正在尝试使用如下 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"

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

最佳答案

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

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

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

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

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

编码愉快!

关于javascript - 交响乐 2 :image paths in javascript file with assetic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096813/

相关文章:

javascript - Promise 循环每次执行一些事情,而另一些事情只执行一次

javascript - 随机放置 svg 多边形

jquery - 在上传和裁剪之前将图像传递给croppic loadPicture

image - 如何检查完整屏幕截图上是否有特定图像?

php - Symfony:不断收到有关缺少翻译的通知

mongodb - symfony2形式选择和mongodb

javascript - ParentNode.remove() 在 IE 中不起作用

javascript - 如何通过 Javascript 动态更改 css

html - border-image CSS 的奇怪行为

php - MongoDB::listCollections 不工作