Magento 2: Liên kết tượng trưng đến các tệp pub / static


8

Cách đây một thời gian khi tôi đang thực hiện một dự án với Magento 2, tôi nhận thấy rằng các tệp CSS và JavaScript trong pub/staticchủ đề của tôi thực sự là các liên kết tượng trưng đến các tệp thực tế. Đây cũng là khi tôi chạy một setup:static-content:deployhành động từ vỏ.

Tuy nhiên, gần đây tôi đã di chuyển sang một hệ thống mới và kiểm tra mã và cơ sở dữ liệu của dự án, nhưng bây giờ khi tôi triển khai nội dung tĩnh của mình, chúng là bản sao chứ không phải là liên kết tượng trưng.

Là một cái gì đó thay đổi? Hoặc tôi đang thiếu một số thiết lập cấu hình ở đây? Sẽ không hiệu quả khi phải biên dịch lại nội dung tĩnh mỗi khi tôi thực hiện thay đổi đối với JS hoặc CSS.

Tôi đang sử dụng Magento 2.0.6


Cửa hàng của bạn có được đặt ở chế độ nhà phát triển không?
Ryan Hoerr

Có, cửa hàng của tôi được đặt ở chế độ nhà phát triển. Tôi cũng đã thử chuyển sang sản xuất, xóa pub/static-folder và bật lại chế độ nhà phát triển, nhưng không thành công. Tất cả các tệp được sao chép thay vì liên kết tượng trưng.
Giel Berkers

Câu trả lời:


10

Nhiều khả năng bạn đã xóa tất cả các tệp của mình trong thư mục pub tại một số điểm trong quá khứ, bao gồm:

  1. /pub/static.php
  2. /pub/static/.htaccess

Khi không tìm thấy tệp tĩnh mà bạn đang tìm kiếm, nó sẽ chuyển hướng yêu cầu đến một thư mục ở trên thành tệp static.php, khởi tạo cơ chế dự phòng và kéo xuống tệp đó dưới dạng liên kết tượng trưng.

Để giải quyết vấn đề, sao chép xuống bản sao mới của Magento 2.x mà bạn đang chạy và sao chép các tệp đó vào thư mục pub của bạn.


10

Mở di.xml của bạn ( app / etc / di.xml ) và kiểm tra xung quanh dòng 580, bạn sẽ tìm thấy một cái gì đó như thế này (Tôi đang sử dụng 2.0.6 và chế độ được đặt cho nhà phát triển): Như bạn có thể thấy view_preproccessed được liên kết với nhau và mặc định được đặt thành sao chép.

<virtualType name="developerMaterialization" type="Magento\Framework\App\View\Asset\MaterializationStrategy\Factory">
    <arguments>
        <argument name="strategiesList" xsi:type="array">
            <item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
            <item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
        </argument>
    </arguments>
</virtualType>

Ngoài ra, hãy xem ở đây lỗi Magento 2 404 cho các tập lệnh và css đặc biệt là câu trả lời từ Chris O'Toole.

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.