จะระบุเส้นทางของภาพในเทมเพลต HTML ที่น่าพิศวงได้อย่างไร


10

ฉันพยายามเพิ่มภาพไอคอนในMagento_Paypal/web/template/payment/paypal-express.htmlเทมเพลต web/imagesไอคอนตั้งอยู่ใน ฉันต้องการใช้เทียบเท่ารหัสต่อไปนี้ซึ่งทำงานในแม่แบบ HTML ของอีเมล แต่ไม่ใช่แม่แบบนี้:

<img src="{{view url='images/icon-paypal.png'}}">

เนื่องจากตัวแปรปีกกาแบบหยิกไม่ทำงานในแม่แบบ HTML นี้คุณจะอ้างอิงภาพที่มีอยู่ในweb/imagesไดเรกทอรีของชุดรูปแบบได้อย่างไร

คำตอบ:


24

คุณต้องโทรfunctionเข้าjsจากเทมเพลต

require.toUrl('images/icon-paypal.png');

3
นี่คือสิ่งที่ฉันกำลังมองหา - ได้รับการยอมรับ! <img data-bind="attr: { src: require.toUrl('')+'images/icon-paypal.png' }" alt="">นี่คือแท็กภาพสุดท้ายสำหรับผู้ที่สนใจ:
thdoan

2
จะไม่ดีกว่าอย่างนั้นrequire.toUrl('images/icon-paypal.png');เหรอ ฉันไม่ได้ลองฉันแค่คิดว่ามันใช้ได้
Ben Crook

1
@ BenCrook ฉันสามารถยืนยันได้ว่าข้อเสนอแนะของคุณทำงาน
Darren Felton

ขอบคุณ @Meogi ถ้าใครสามารถยืนยันได้ฉันจะอัพเดทคำตอบ ฉันยุ่งเกินไปกับ Magento 1 เพื่อตรวจสอบตู้เอทีเอ็ม
Ben Crook

1
@BenCrook ฉันตรวจสอบแล้วและสามารถยืนยันได้ว่าโซลูชันของคุณใช้ได้
Rafał Cz

3

หากคุณพยายามที่จะเพิ่มเพียงแค่เส้นทางภาพในไฟล์ phtml คุณควรทำตามวิธีด้านล่าง

<img src="<?php echo $block->getViewFileUrl('images/image.png') ?>">\

เมื่อต้องการทำสิ่งนี้ด้วยวิธีที่น่าพิศวง:

ลองเพิ่มตัวแปรในหน้าต่างจากไฟล์ * .phtml:

<script>
  window.imgpath = '<?php echo $block->getViewFileUrl('images/image.png') ?>';
  </script>

และอ่านตัวแปรนั้นจากหน้าต่าง:

  function someFunction() {
  var imgPath = window.imgpath;
  }

เปลี่ยนรหัสภาพของคุณ:

<img alt="" data-bind="attr: { src: someFunction() } "/>

แต่เส้นทางหน้าต่างนั้นคุณจะต้องเรียกส่วนหัวดังนั้นควรใช้ ko
นิล Patel

3

สร้างตัวแปร js ใน phtml

<script>
  var imgpath = '<?php echo $block->getViewFileUrl('images/image.png') ?>';
</script>

ตอนนี้สร้างฟังก์ชั่น js ใหม่

getImagepaypal: function() {
                return window.imgpath;
            }

ในไฟล์ html ของคุณ

 <img alt="" data-bind="attr: { src: getImagepaypal() } "/>

คุณช่วยบอกวิธีสร้างไฟล์ js และ html แบบเต็มในการแทนที่แบบกำหนดเองได้และวิธีเพิ่มไฟล์นั้นใน xml ได้ไหม?
Sarfaraj Sipai

คุณต้องการแทนที่ค่าเริ่มต้นของ magneto js และ html ในโมดูลของคุณหรือไม่?
Qaisar Satti

ใช่ฉันต้องการแทนที่ไฟล์ "Magento_CheckoutAgreements" phtml, js และ html
Sarfaraj Sipai

@SarfarajSipai ติดตาม magento.stackexchange.com/questions/170646/…
Qaisar

ฉันรู้วิธีการสร้าง / แทนที่โมดูล แต่ฉันไม่รู้วิธีการแทนที่ "js" และ "html" ในการแทนที่ธีมที่กำหนดเองดังนั้นฉันจึงต้องการที่จะรู้ว่า
Sarfaraj Sipai

0

คุณสามารถใช้สิ่งนี้ในแต่ละวีโอไอพีต้องการไฟล์ js โดยไม่มีข้อกำหนดใด ๆ - มาจากผู้ขาย / วีโอไอพี / โมดูล - ธีม / มุมมอง / ส่วนหน้า / แม่แบบ / หน้า / js / require_js.phtml

require.s.contexts ._. config.baseUrl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.