JS và CSS đã trộn không hoạt động khi chế độ Sản xuất


24

Tôi đang ở chế độ nhà phát triển , mọi thứ đều tuyệt vời, khi tôi thay đổi sang chế độ Sản xuất , các tùy chọn Hợp nhất của CSS và JS dường như bị bỏ qua, nó đã liệt kê lại tất cả các css và js.

Ngoài ra trang sản phẩm chỉ hiển thị hình ảnh của sản phẩm ở chế độ nhà phát triển, sau khi thay đổi sang chế độ sản xuất, chúng biến mất.

Bất cứ suy nghĩ để giúp tôi?


Vấn đề là, tôi đang làm điều đó.

Đây là những gì tôi đã làm theo trình tự:

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento setup:static-content:deploy

bin/magento setup:di:compile

bin/magento deploy:mode:set production

bin/magento setup:static-content:deploy

Và thậm chí trước khi bắt đầu, các tùy chọn Hợp nhất là CÓ và tôi đang ở chế độ nhà phát triển.


Xin chào, Bạn đã có giải pháp nào cho vấn đề này chưa, tôi đang gặp vấn đề tương tự trong magento 2.0.7. Vui lòng đưa ra giải pháp nếu bạn có bất kỳ, Cảm ơn
Ashish Jagnani

vấn đề tương tự tôi đang đối mặt với nó xin vui lòng giúp tôi
Rv Singh

Câu trả lời:


19

Tôi chỉ làm như sau và vấn đề đã được giải quyết:

thiết lập bin / magento: nâng cấp

bộ chỉ mục bin / magento: reindex

triển khai bin / magento: chế độ: thiết lập sản xuất -s

# Đây là bí mật: chạy di: biên dịch sau khi sản xuất
thiết lập bin / magento: di: biên dịch  

thiết lập bin / magento: static-content: triển khai

2
tôi đã thử cách tương tự nhưng không có may mắn
Pradeep Kumar

Điều này làm việc cho tôi.
dchayka

Nếu tôi thực thi lệnh "sản xuất -s" thì nó làm trống trang web của tôi và đưa ra lỗi rất bất thường: Cảnh báo: bao gồm (/ siteRoot / html / var / view_prepered / html / eller / magento / module-theme / view / base / samples / root. phtml): không thể mở luồng: Không có tệp hoặc thư mục như vậy trong /siteRoot/html/vendor/magento/framework/View/Result/Page.php trên dòng 312
Jai

Khác - điều đó làm việc cho tôi. Trong trường hợp bất cứ ai khác có vấn đề tôi đã. CSS sẽ thu nhỏ và đóng gói, nhưng JS thì không, mặc dù đã bật các tùy chọn trong quản trị viên. Thêm -s trong chế độ sản phẩm đã đặt sẽ tạo ra sự khác biệt. Ngoài ra, phần phụ trợ bây giờ cũng nhanh hơn. Tôi đã sử dụng cùng một thứ tự và các lệnh, nhưng chính "-s" đã tạo ra sự khác biệt, Cảm ơn bạn
dawhoo

Trước tiên tôi có cần chuyển về chế độ phát triển không? Tôi đã làm những gì bạn đề cập, nhưng không có gì khác biệt ....
Jilco Tigchelaar

2

Đảm bảo bạn cũng kiểm tra tệp cấu hình NGINX của mình.

Nếu có một biến $MAGE_MODEđược đặt ở đó, nó cũng cần được thay đổi productionvà lưu tệp

Sau đó, bạn sẽ cần tải lại hoặc khởi động lại NGINX tùy theo sở thích của bạn.

sudo service nginx reload

HOẶC LÀ

sudo service nginx restart

Sau đó kiểm tra app/etc/env.phpvà xem liệu MAGE_MODEkhóa mảng có được đặt thành productionkhông nếu không thay đổi nó thành productionhoặc bạn có thể sử dụng lệnh

php bin/magento deploy:mode:set production

Sau khi bạn thực hiện kiểm tra lệnh nếu giá trị thay đổi app/etc/env.php, đôi khi có thể có vấn đề về quyền.

Tiếp theo, dọn sạch pub/staticthư mục.

rm -rf pub/static/*

Xóa / xóa bộ nhớ cache của bạn

php bin/magento cache:clean
php bin/magento cache:flush 

Bây giờ bạn đã sẵn sàng để thực hiện triển khai nội dung tĩnh

php bin/magento setup:static-content:deploy

Hi vọng điêu nay co ich.


1

Tôi có vấn đề tương tự. Nguyên nhân không có hình ảnh là bởi vì có một lỗi trong tập tin JS sau khi giảm bớt JS. Bạn có thể xác minh nó trong trình duyệt của bạn (firebird, v.v.).

... / div> '; return __p};}) (cửa sổ, tài liệu, vị trí, loại jQuery! ==' không xác định '&& jQu

Tôi đã giải quyết điều này bằng cách xóa tất cả các tệp trong var / cache /pub / static / and setup: static-content: triển khai lại

Nhưng vẫn còn một vấn đề khác, đó là về braintree nếu bạn kích hoạt nó. Braintree không xuất hiện do một lỗi JS khác.

Lỗi: Lỗi tập lệnh cho: https://js.braintreegateway.com/v2/braintree.js http://requirejs.org/docs/errors.html#scripterror

... Lỗi (id, tin nhắn, err, notifyModules) {var e = new Error (Trình tin + '\ nhttp: //requirejs.org/doc ...

Hiện tại, tôi chỉ đơn giản là không sử dụng chức năng minify js để tránh rắc rối cho đến khi tìm thấy giải pháp.


1

Đây là các bước làm việc cho tôi trên Magento ver. 2.1.7 với Redis (không chạy Varnish). Tuy nhiên, vẫn chưa rõ liệu mọi thứ có hoạt động như bình thường không. JS được thu nhỏ và đóng gói (không rõ việc hợp nhất nào được thực hiện). CSS được thu nhỏ (không thấy nó được hợp nhất).

  1. Tắt tất cả bộ nhớ cache Magento.
  2. Xóa bộ nhớ cache.
  3. Bật tất cả năm cấu hình css / js (trong quản trị viên hoặc thông qua cơ sở dữ liệu).
  4. Tạo tập tin tĩnh.
  5. Xóa bộ nhớ cache Magento (dòng lệnh). Để an toàn (có thể không bắt buộc).
  6. Xóa opcache (nếu không được đặt thành tự động làm mới).
  7. Làm mới trang chủ lối vào (và kiểm tra lỗi bảng điều khiển trình duyệt).
  8. Bật bộ nhớ cache Magento.

dev / css / merge_css_files = 1 dev / css / minify_files = 1 dev / js / enable_js_bundling = 1 dev / js / merge_files = 1 dev / js / minify_files = 1

Chỉ cần bật cấu hình và xóa bộ nhớ cache không hoạt động - bảng điều khiển trình duyệt frontend đã báo cáo rất nhiều lỗi js.


Hợp nhất sẽ hợp nhất các tệp của bạn lại với nhau thành một.
ladle3000

0

Bạn đã thử tuôn ra JavaScript / CSS chưa? Bạn có thể thực hiện việc này trong Hệ thống> Quản lý bộ đệm và sau đó nhấn nút nằm ở cuối bảng bên trái 'Flus JavaScript / CSS Cache'


YEP .... tuôn ra js, sau đó cache. Không có gì thay đổi. Tuy nhiên, nếu tôi chuyển sang chế độ Nhà phát triển, việc hợp nhất sẽ hoạt động.
BrunoBueno

0

Bạn cần triển khai lại tĩnh sau khi bật tùy chọn này trong chế độ sản xuất.


Vấn đề là, tôi đang làm điều đó. Tôi chỉ đăng ở đây những gì tôi đã làm.
BrunoBueno

Nếu nó không hoạt động thì vấn đề có thể trong sự cho phép. Bạn có thể kiểm tra nhật ký truy cập / lỗi máy chủ web của mình không
KAndy 17/03/2016

0

Tôi chỉ làm như sau và vấn đề đã được giải quyết.

bin/magento setup:upgrade

bin/magento indexer:reindex

bin/magento deploy:mode:set production -s

bin/magento setup:di:compile

(Đây là bí mật, để chạy di: biên dịch sau khi sản xuất)

bin/magento setup:static-content:deploy

0

Tôi đã gặp sự cố khi JavaScript chưa được biên dịch bộ chọn jquery hoạt động.

$ ('# my_element'). click (function () {alert ('Xin chào thế giới');});

Nhưng một khi được biên dịch, nén và tham gia, sau đó tôi cần mã: -

$ ('body #my_element'). click (function () {alert ('Hello World');});

Đừng hỏi tại sao, dường như khi đọc trực tiếp từ bộ đệm, mã requestjs sẽ thực thi trước domReady và các phần tử gắn với các phần tử khác nhau trong một số trang khác nhau.



-1
  1. Vui lòng bật tùy chọn "Bật gói JavaScript"

    lưu trữ-> cấu hình-> nâng cao-> nhà phát triển-> cài đặt javascript->

  2. Bật Gói JavaScript được đặt thành "có" và xóa bộ đệm


2
Lời khuyên haphazard không liên quan gì đến câu hỏi.
ladle3000
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.