Cài đặt cục bộ Magento 2 không tạo tệp trong thư mục pub / static


15

Tôi vừa cài đặt Magento 2 Community Edition với dữ liệu mẫu (được tải xuống từ trang web của họ và không được cài đặt với trình soạn thảo) cục bộ qua MAMP. Quá trình cài đặt thành công, nhưng tất cả các tệp trong thư mục pub / static đều bị thiếu ngoại trừ .htaccess. Điều đó có nghĩa là tất cả css, js, v.v. trả về 404 cho cả frontend và backend.

Tôi đã dành vài giờ để cố gắng khắc phục điều này mà không gặp may mắn. Đây là những gì tôi đã làm cho đến nay:

  • Đã thay đổi Options Indexes FollowSymLinks AllowOverridetừ 'Không' thành 'Tất cả' trong /MAMP/conf/apache/httpd.conf và khởi động lại MAMP
  • Đảm bảo không LoadModule rewrite_module modules/mod_rewrite.sobị thiếu trong httpd.conf
  • Thiết lập miền phát triển (magento.dev) trong MAMP
  • Cố gắng chạy php bin/magento setup:static-content:deploytrong thư mục gốc magento.dev sử dụng Terminal. Điều này tuy nhiên trả về:

Lỗi nghiêm trọng: Không tìm thấy lớp 'Địa điểm' trong /Appluggest/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php trên dòng 64

  • Không ghi chú và thay đổi RewriteBase thành RewriteBase /trong tệp .htaccess trong thư mục gốc magento.dev.
  • Đặt Magento ở chế độ phát triển
  • Xóa bộ nhớ cache thủ công và chạy php bin/magento setup:static-content:deploylại

Hướng dẫn và các bài viết diễn đàn hầu hết cho tôi biết để chạy: php bin/magento setup:static-content:deploynhưng tôi không chắc chắn, nếu tôi làm việc đó một cách chính xác.

HĐH: OSX 10.11.2

Phiên bản MAMP: 3.5

Phiên bản PHP: 7.0

Phiên bản Apache: 2.4.16

Phiên bản MySQL: 5.6.25

Bất kỳ trợ giúp sẽ được đánh giá cao.


Tôi đang cài đặt 2.2.2 trên máy chủ CentOS. Không có gì trên trang này hoạt động. Để có bất kỳ kiểu dáng nào, tôi phải chạy php bin/magento setup:static-content:deploy -f và đợi 80 giây.
Chris K

Câu trả lời:


15

GIẢI PHÁP # 1 (NẾU BẠN MUỐN CHỈNH SỬA XML)

Tôi muốn bạn tải xuống Magento 2 zip từ magentocommerce.com/download, tạo db mới trong phpmyadmin , giải nén zip trong thư mục htdocs . Cài đặt Magento 2 nhưng không sử dụng localhost, hãy sử dụng 127.0.0.1 trong URL cửa hàng và URL quản trị. Sau khi cài đặt thành công KHÔNG chạy magento.

Bây giờ chúng tôi sẽ xóa / xóa bộ nhớ cache và phiên của Magento 2. Đi đến các đường dẫn sau và xóa mọi thứ:

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Khi Magento 2 không ở chế độ sản xuất, nó sẽ cố gắng tạo liên kết tượng trưng cho một số tài nguyên tĩnh trên máy chủ cục bộ. Chúng tôi phải thay đổi hành vi đó của Magento 2 bằng cách chỉnh sửa ROOT > app > etc > di.xmltệp. Mở ra di.xmltrong trình soạn thảo mã yêu thích của bạn, tìm virtualType name="developerMaterialization"phần. Trong phần dưới đây, bạn sẽ tìm thấy một mục <item name="view_preprocessed" xsi:type="object">cần được sửa đổi. Bạn có thể sửa đổi nó bằng cách thay đổi nội dung sau:

Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink

Đến:

Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

Bây giờ bước cuối cùng, cũng xóa các tập tin cũ được tạo trong ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

Cá nhân tôi đã thử nó trên localhost của mình bằng MAMP, EasyPHP DevServer, Xampp và Wampp và cài đặt thành công và sử dụng Magento 2. Để biết thêm, bạn có thể kiểm tra liên kết này: Magento 2 CSS và JavaScript không tải từ thư mục chính xác

GIẢI PHÁP # 2

Cài đặt Trình soạn thảo. Bây giờ tôi muốn bạn tải xuống Magento 2 zip từ magentocommerce.com/download, tạo db mới trong phpmyadmin , giải nén zip trong thư mục htdocs . Cài đặt Magento 2 nhưng không sử dụng localhost, hãy sử dụng 127.0.0.1 trong URL cửa hàng và URL quản trị. Sau khi cài đặt thành công KHÔNG chạy magento.

Bây giờ chúng tôi sẽ xác minh cài đặt Trình soạn thảo, Triển khai nội dung tĩnh, xóa / xóa bộ đệm Magento và giới thiệu lại các khối Magento 2. Để thực hiện tất cả các hành động trên, nhấn WINDOWS KEY + R để mở hộp thoại RUN và gõ vào cm cmd Hồi để mở Dấu nhắc lệnh.

Nhập loại cd cd PATH_TO_YOUR_MAGENTO2_FILES để nhập vào thư mục ROOT Magento 2.

Bây giờ để xác minh cài đặt Trình soạn thảo trong thư mục trên, hãy nhập cài đặt Trình soạn nhạc cài đặt .

Nếu bạn gặp bất kỳ lỗi nào trong bước này, vui lòng kiểm tra cài đặt Trình soạn thảo của bạn

Trong bước này, chúng tôi đang thiết lập nội dung tĩnh để triển khai trên cửa hàng Magento của chúng tôi. Để thực hiện việc này, hãy nhập cài đặt bin / magento php php: static-content: triển khai tổ chức .

Nếu bạn gặp bất kỳ lỗi nào, hãy kiểm tra Biến môi trường PHP.EXE và PHP.INI của bạn

Xóa / xóa bộ đệm Magento bằng cách nhập bộ nhớ cache php php / bộ đệm magento: tuôn ra bộ nhớ cache trong CMD.

Và cuối cùng, để Reindex Magento static Blocks gõ vào bộ lập chỉ mục bin php / binento: reindex .

Bạn đã hoàn thành việc cài đặt thành công Magento 2.


Câu trả lời đã được chỉnh sửa.
Fayyaz Khattak

Tuyệt vời! Tôi đã thử giải pháp 1 và nó hiệu quả với tôi .. Cảm ơn Khatak sb
Muhammad Azeem

Chào mừng @MuhammadAzeem
Fayyaz Khattak

@RajaKhoury Chào mừng bạn!
Fayyaz Khattak

Giải pháp 1 hiệu quả với tôi! Cảm ơn bạn rất nhiều !!
Daniel Silva

5

Cố gắng chạy bên dưới lệnh

php bin/magento setup:static-content:deploy

Và nếu nó đưa ra bất kỳ lỗi nào trong khi chạy lệnh này, như thiếu tệp như bạn đã nói, thì hãy so sánh cấu trúc tệp dự án của bạn với magento2cấu trúc tệp mới . Nếu bất kỳ tệp nào bị thiếu trong dự án của bạn thì sao chép tệp thích hợp vào dự án của bạn.

Và nếu bạn có bất kỳ lỗi nào khác thì hãy gửi lỗi trong câu hỏi của bạn để ai đó có thể trả lời câu hỏi của bạn.


Cảm ơn đã phản hồi nhanh chóng. Tôi sẽ làm việc đó. Chính xác thì tôi chạy lệnh này ở đâu?
Skovsgaard

@Skovsgaard bạn có thể chạy lệnh này từ thiết bị đầu cuối của mình nhưng hãy chắc chắn rằng bạn đang ở trong thư mục magento2 từ thiết bị đầu cuối
Keyur Shah

Có vẻ như không có tập tin nào bị thiếu. Magento đã cài đặt rõ ràng chứa nhiều tệp hơn mặc dù có liên quan đến quá trình cài đặt. Tôi gặp lỗi này: Fatal error: Class 'Locale' not found in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64sau khi chạy php bin/magento setup:static-content:deploytrong thư mục gốc.
Skovsgaard

Tôi đã không thực sự hữu ích. Lấy làm tiếc.
Skovsgaard

2

Có vẻ như intltiện ích mở rộng không được tải trong phiên bản giao diện điều khiển của php. Vui lòng xác minh rằng bạn sử dụng cùng một phiên bản / cài đặt cho phiên bản apache và cli của php.

MacOsX đã cài đặt phiên bản php và một số gói cài đặt php không thay đổi liên kết tượng trưng cho phiên cuối. Kết quả là bạn có thể cài đặt phiên bản php khác nhau cùng một lúc.

PS: Tôi đề xuất sử dụng vagrant trên Mac OS. nó hoạt động khá tốt nếu sử dụng nfs để chia sẻ tập tin


Aha! Php (cli) được cài đặt sẵn chỉ 5.5.30. Apache được cài đặt sẵn là 2.4.16 (Tôi không biết cách kiểm tra phiên bản apache của MAMP nếu MAMP cũng cài đặt riêng Apache). Vì vậy, tôi phải cập nhật phiên bản cài đặt sẵn lên 7 và cũng cài đặt phần mở rộng intl (cli hoặc mamp?)? Vagrant dường như quá tiên tiến cho một người mới như tôi.
Skovsgaard

Tôi không thể trả lời các câu hỏi dành riêng cho Mac nhưng có ít nhất hai cách để kiểm tra phiên bản PHP của bạn: php -v(hiển thị phiên bản lệnh PHP chạy như thế nào) và sử dụng phpinfo.php , cho biết phiên bản PHP nào mà máy chủ web chạy.
Steve Johnson

Được rồi, vì vậy MAMP chạy PHP 7 và Apache 2.2.29. Máy cục bộ của tôi chạy PHP 5.5.30 và Apache 2.4.16. Vì vậy, bước tiếp theo là cập nhật PHP của máy cục bộ lên 7?
Skovsgaard

Vui lòng thử sử dụng đường dẫn đầy đủ đến nhị phân
php7

2

Nếu vẫn thất bại, hãy lược bớt các thư mục này:

rm -rf pub/static/*    # DO NOT DELETE .htaccess
rm -rf var/view_preprocessed/*
php bin/magento setup:static-content:deploy

Điều này sẽ hoạt động nếu bạn có các liên kết tượng trưng bị hỏng trong các thư mục đó.


1
.htaccess không bao giờ nên bị xóa. Tôi cũng đã mắc lỗi này và lãng phí hàng giờ
Tahir Yasin

1

xóa page_cache, di, view_ process, cache

sau đó cấp quyền cho các thư mục và tập tin

sau đó chạy php bin/magento setup:static-content:deploytừ thư mục gốc của bạn.

kiểm tra quán rượu / tĩnh.

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


Tôi chạy ở đâu và như thế nào clear page_cache, di ,view_process, cache? Đây là một bản cài đặt cục bộ, vì vậy, với tư cách là quản trị viên siêu máy tính của tôi, tôi có tất cả các quyền đọc / ghi quyền. Có bất kỳ quyền nào khác mà tôi không biết?
Skovsgaard

nếu bạn đang sử dụng cục bộ hơn là cấp quyền đầy đủ cho thư mục gốc
chối vachhani

tất cả các thư mục nằm trong var / xóa tất cả các thư mục và cấp quyền đầy đủ cho thư mục.
chối vachhani

1

Bạn đã cài đặt composervà chạy composer inittrong thư mục magento2? Nếu không, hãy thử nó và chạy lệnhphp bin/magento setup:static-content:deploy


Trình soạn thảo được cài đặt trên máy của tôi, vâng, nhưng tôi đã không sử dụng nó để cài đặt Magento 2. Tôi chỉ đơn giản là tải xuống .zip từ trang web của họ, giải nén và cài đặt. Nếu tôi chạy trình composer initsoạn thảo yêu cầu tôi thiết lập cấu hình composer.json, vì vậy tôi đoán điều đó sẽ không giúp ích.
Skovsgaard
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.