symfony:将资产图像与 javascript 一起使用?

symfony : using asset images with javascript?

在平坦的 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 + "\"/>";

Twig 与 PHP 一样,将在第一个 render/call 上 运行 到服务器。所以它不能像你那样与代码的动态部分结合。

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

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

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

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

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