Nhận URL của thư mục nội dung tĩnh (cho phụ trợ)


8

Bên trong một lớp khối đang được sử dụng để kết xuất một nút trong bảng quản trị, làm thế nào để lấy URL của thư mục nội dung tĩnh? Cụ thể, URL của thư mục có hình ảnh ?

Ví dụ: trong Company_Helloworldmô-đun, hình ảnh cho nút tùy chỉnh được đặt ở đây:

ứng dụng / mã / Công ty / Hellowworld / xem / adminhtml / web / hình ảnh /

Kiểm tra 1

Tôi đã thử điều này:

$url = $this->getViewFileUrl('Company_Helloworld::images/icon.png');

Nhưng nó cố lấy lại hình ảnh từ Magento/backendchủ đề:

http://example.com/pub/static/adminhtml/Magento/backend/en_US/Company_Helloworld/images/icon.png

trong khi hình ảnh không có ở đó, hình ảnh thực sự nằm trong thư mục của mô-đun:

ứng dụng / mã / Công ty / Hellowworld / view / adminhtml / web / hình ảnh / icon.png

Kiểm tra 2

Và điều này:

$url = $this->getViewFileUrl('images/icon.png');

Nhưng nó cũng cố gắng lấy lại hình ảnh từ Magento/backendchủ đề, lần này không có ngữ cảnh mô-đun:

http://example.com/pub/static/adminhtml/Magento/backend/en_US/images/icon.png

Có cách nào để đưa hình ảnh vào mô-đun chứ không phải trong chủ đề phụ trợ không?

Câu trả lời:


8

Thử sử dụng:

echo $block->getViewFileUrl('Company_Helloworld::yourImage.png'); 

Như một đối số thứ hai của

\ Magento \ Framework \ View \ Element \ AbstractBlock :: getViewFileUrl ($ fileId, mảng $ params = [])

bạn có thể đặt một mảng các tham số tiếp theo: " mô-đun ", " _secure ", " chủ đề ", " khu vực " và " miền địa phương "


Cảm ơn bạn, tôi mệt mỏi với điều này nhưng nó cung cấp URL của tài sản từ Magento/backendchủ đề. Tôi mở rộng câu hỏi của tôi với các ví dụ.
maginfortis

Chạy thiết lập bin / magento: static-content: triển khai devdocs.magento.com/guides/v2.0/config-guide/cli/ ,. Vị trí có vẻ chính xác từ cái nhìn đầu tiên. Đồng thời xem xét devdocs.magento.com/guides/v2.0/arch architecture / view / khăn
Arkadii Chyzhov

Vị trí này là chính xác giả sử rằng tôi đặt tệp hình ảnh của mình trong một thư mục Magento/backendchủ đề. Nhưng tôi muốn giữ hình ảnh của mình trong thư mục của mô-đun. Có thể không?
maginfortis

Theo tôi hiểu, bạn muốn sử dụng một hình ảnh trong bảng quản trị, phải không? "Magento / phụ trợ" là tên của chủ đề quản trị mặc định, vì vậy đó là chủ đề chính xác cho ví dụ của bạn, hơn là tên miền và tên mô-đun. Điều gì làm bạn bối rối? Tìm kiếm cách sử dụng phương thức getViewFileUrl trong mã và bạn sẽ tìm thấy các ví dụ hoạt động cho các khối và mẫu. Chạy thiết lập bin / magento: static-content: triển khai và bạn sẽ tìm thấy mối tương quan giữa các tài sản trong mô-đun và pub / static
Arkadii Chyzhov 23/2/2016

3

Thử sử dụng:

<?php
class ...

protected $_assetRepo;

public function __construct(
    ....
    \Magento\Framework\View\Asset\Repository $assetRepo,
    ....
) {
    ....
    $this->_assetRepo = $assetRepo;
    ....
}

Bây giờ, trong trường hợp bạn tên mô-đun là: Company_Helloworldvà bạn muốn icon.pngtừ imagesthư mục vì vậy

echo $this->_assetRepo->getUrl("Company_Helloworld::images/icon.png");

Hy vọng điều này sẽ giúp bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.