symfony:用javascript使用资产图片?

时间:2017-04-19 19:30:41

标签: javascript image symfony twig assets

在平板php代码中我可以像这样写这行,我得到我想要的图像

imageString = "<image src=\"" + pieceFileName + "\" class=\"Piece clickElement " + rankName + " " + fileName + "\"/>";

但是用javascript symfony怎么样?

我尝试编写这样的代码,但它确实没有用

imageString = "<img src=\"""{{ asset(' \""+ pieceFileName +"\" ')}}""\" class=\"Piece clickElement " + rankName + " " + fileName + "\"/>";

完整代码

function AddGUIPiece(sq,pce) {  
    var rank = RanksBrd[sq];
    var file = FilesBrd[sq];
    var rankName = "rank" + (rank + 1); 
    var fileName = "file" + (file + 1); 
    pieceFileName = "images/" + SideChar[PieceCol[pce]] + PceChar[pce].toUpperCase() + ".png";
    imageString = "<image src=\"" + pieceFileName + "\" class=\"Piece clickElement " + rankName + " " + fileName + "\"/>";

1 个答案:

答案 0 :(得分:3)

与PHP一样,Twig将在第一次渲染/调用服务器时运行。所以它不能像你那样与动态的代码部分结合起来。

但是,如果所有这些图像都在同一个文件夹中,为什么不直接保存到那个?

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

一旦你定义了它,就连接到这个字符串以获得正确的路径,如此

pieceFileName = guiPiecePre + SideChar[PieceCol[pce]] + PceChar[pce].toUpperCase() + ".png";

关键是,guiPiecePre将具有静态值(如果检查源,您甚至可以在呈现的HTML中看到它),并且在需要时通过JS附加动态部分。