Magento 2 CSS và JavaScript không tải từ thư mục chính xác


35

Tôi hy vọng rằng ai đó ở đây có thể giúp đỡ. Tôi đang cố gắng cài đặt và chạy Magento 2 trên WAMP trên máy Windows 7 nhưng không mấy thành công.

Sau khi nhảy qua nhiều vòng và nhiều trang khác nhau để tải trang web, bây giờ tôi phải đối mặt với phản hồi 404 và không có kiểu tải hoặc javascript.

Thông số kỹ thuật như sau:

  • Các mẫu Magento-CE-2.0.0 +
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Khi tôi nhìn vào bảng điều khiển trình duyệt trong số các lỗi là các nỗ lực truy cập các tệp không có trong thư mục pub / static. Thư mục "frontend" được tải và hầu hết các tập tin đều có mặt. Tuy nhiên, tôi đã nhận thấy rằng một số tệp CSS không có mặt.

Khi chạy lệnh triển khai PHP

php bin/magento setup:static-content:deploy

được đề cập trong các bài viết khác tôi nhận được lỗi dưới đây. Tôi không chắc chắn làm thế nào để khắc phục điều này?

Lỗi nghiêm trọng: Kích thước bộ nhớ cho phép là 134217728 byte đã cạn kiệt (đã cố phân bổ 64 byte) trong C: \ wamp \ www \ magento \ eller \ oyejorge \ less.php \ lib \ Less \ visitor.php trên dòng 45

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

CẬP NHẬT

Tôi đã tăng dung lượng bộ nhớ PHP và chạy lại kịch bản triển khai php. Lần này nó không có lỗi và thực hiện đầy đủ. Tuy nhiên, vấn đề tương tự như mô tả ở trên vẫn còn. Trang web tải nhưng mọi nỗ lực tải bất kỳ trang hoặc tài sản nào đều dẫn đến một trang 404 không tìm thấy lỗi mà không áp dụng kiểu dáng.

Vui lòng xem các lỗi bên dưới trong Chrome Inspector

nhập mô tả hình ảnh ở đây


@TejabhagavanKollepara Câu hỏi này được hỏi đầu tiên, được hình thành tốt, có câu trả lời tốt, vì vậy IMO câu hỏi khác là một ứng cử viên, không phải câu hỏi này ... Btw, nếu cờ của câu hỏi khác là trùng lặp với câu hỏi này bị từ chối , không cần thiết phải gắn cờ câu hỏi này là trùng lặp với câu hỏi khác để cố gắng đạt được điều tương tự.
7ochem

Cũng xem câu trả lời của SA - cài đặt Magento mới ở chế độ "mặc định" (không phải "sản xuất") và không cần nội dung tĩnh được triển khai, đó là những gì bạn được yêu cầu làm trong tất cả các câu trả lời khác.
Jānis Elmeris

Câu trả lời:


50

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/downloaddữ liệu mẫu, 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

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 .

Dành cho những ai đang dùng Magento 2.2.x

php bin/magento setup:static-content:deploy -f

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.


4
Ngoài ra, trong php.ini thay đổi max_execut_time thành 500, memory_limit thành 2048M, post_max_size thành 2048M, upload_max_filesize thành 2048M và max_file_uploads thành 2048.
Fayyaz Khattak

Cám ơn bạn đã phản ứng nhanh chóng của bạn. Tôi đã thực hiện những thay đổi này nhưng chúng không có hiệu lực. Tôi đã khởi động lại máy chủ WAMP sau khi thực hiện các thay đổi. Tôi đã chỉnh sửa câu hỏi để hiển thị các lỗi mà tôi có thể thấy trong trình kiểm tra Chrome
E.Gain 14/1/2016

Ôi tôi rất tiếc khi đề cập đến một điều nữa, trước tiên hãy xóa tất cả bộ đệm và phiên, thực hiện thay đổi trong di.xml và cũng xóa mọi thứ từ ROOT> pub> static> XÓA TẤT CẢ NGOẠI TRỪ .HTACCESS
Fayyaz Khattak

1
@MagenX Đây là quan điểm của mọi người rằng công cụ nào anh ta thích sử dụng hơn. Trong mắt bạn, bạn chỉ trích mọi thứ là búa hơn là chia sẻ quan điểm của bạn về giải pháp.
Fayyaz Khattak

1
Giải pháp số 2 hoạt động như một cơ duyên, cảm ơn bạn đã tiết kiệm cho tôi hàng giờ nếu không phải là ngày, xử lý vấn đề này!
Jonathan Marzullo

11

bạn chỉ cần cập nhật tệp apache2.conf.

Trên Ubuntu 16.04

  1. Mở và chỉnh sửa tập tin /etc/apache2/apache2.conf
  2. Điều hướng đến vị trí trong tệp apache2.conf <Directory /var/www/>
  3. Thay đổi "AllowOverride None"thành"AllowOverride All"
  4. Lưu các tập tin
  5. Khởi động lại apache2 -> sudo service apache2 restart

Thật khó để tìm thấy câu trả lời này! Ở mọi nơi khác, mọi người đề nghị (tái) triển khai nội dung tĩnh mặc dù cài đặt Magento mới ở chế độ "mặc định" (không phải "sản xuất") và không cần triển khai nội dung tĩnh.
Jāni Elmeris 22/03/18

10

Nếu bạn đang gặp vấn đề về thiết kế tải trang css và js sau khi cài đặt trong magento2

vui lòng làm theo các bước sau-:

mở terminal và điều hướng đến root web magento

 $ cd / var / www / html / magento2 

Bước 1.

 $ php bin / magento setup: static-content: triển khai

Bước 2.

$ php bin / chỉ mục magento: reindex

Bước 3.

hãy chắc chắn rằng apache Malay Rewrite_module 'được kích hoạt và sau đó khởi động lại máy chủ

Bước 4.

$ chown -R www-data: www-data / var / www / html / magento2 

Bước 5.

 $ chmod -R 777 / var / www / html / magento2 

Bước 6.

xóa thư mục bộ đệm trong var / cache

Các bước trên làm việc. Tôi hy vọng điều này cũng sẽ làm việc cho bạn.

Hãy cho tôi biết nếu có vấn đề. :)

http://gotechnies.com/css-javascript-files-loading-magento-2-installation/


1
Làm thế nào để chạy các lệnh này trong windows?
Hassan ALi

1
Nó hoạt động với tôi chỉ trong 3 bước đầu tiên. :)
hln

6
Không quá thông minh để đặt quyền thành 777 cho tất cả các tệp trên máy chủ.
Chris Gudn

1
Tôi không thực sự ấn tượng với bước mà bạn cho phép đọc ghi đầy đủ cho toàn bộ cài đặt magento.
Cyclonecode

1
thiết lập quyền cho 777 là lời khuyên tồi nhưng hy vọng mọi sysadins sẽ biết rõ hơn.
Hội trường John

6

Đối với tôi, đó đơn giản là vì mod_rewrite không được kích hoạt.

sudo a2enmod rewrite

service apache2 restart


1
Giải pháp hoàn hảo!!! +1 :)
SagarPPanchal

6

Tôi đã giải quyết vấn đề tương tự bằng cách thêm

sudo nano /etc/apache2/apache2.conf

Sửa đổi cái này

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

đến đây

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

bạn cũng nên kích hoạt mod_rewritemô-đun apache2 và không bao gồm chứng chỉ ssl:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
Điều này, cộng với rm -rf var / * làm việc cho tôi. Điểm tuyệt vời và tốt.
Jon Hà Lan

6

Đây là giải pháp đơn giản nhất nếu hiển thị tên phiên bản trong đường dẫn css

như: quán rượu / tĩnh / phiên bản323334 /

sau đó chạy truy vấn này trong mysql

INSERT INTO core_config_data (path, value) VALUES ('dev/static/sign', 0)
ON DUPLICATE KEY UPDATE value = 0;

sau đó xóa bộ đệm cấu hình

 bin/magento cache:clean config

bạn cũng có thể tắt phiên bản tệp tĩnh từ quản trị viên

nhập mô tả hình ảnh ở đây


4
Điều này làm việc cho tôi cảm ơn bạn. Tuy nhiên, truy vấn cần phải được cố định INSERT INTO core_config_data (đường dẫn, value) VALUES ('dev / static / sign', 0);
Aftab Naveed

đường dẫn và giá trị là gì
zus

đường dẫn, giá trị là tên trường tôi đã xác định các giá trị (dev / static / sign, 0), chỉ cần chạy sql này nó sẽ hoạt động
Surendra Kumar Ahir

Giải pháp hoàn hảo!!! làm cho ngày của tôi :) +1
SagarPPanchal

5
  1. Cố gắng tắt bộ đệm nếu bạn không tắt nó trước
  2. Đảm bảo bạn có phiên bản Magento mới nhất với mã sạch. Nếu bạn sửa đổi hoặc tùy chỉnh một cái gì đó, đảm bảo sửa tất cả các lỗi.
  3. Chạy một số lệnh dưới đây có thể giúp bạn.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Xóa thư mục trong

  • pub/static/frontend/*
  • var/cache
  • var/view_preprocessed/*

  • php bin/magento setup:static-content:deploy


3

Trong trường hợp của tôi, tôi vô tình xóa .htaccesstập tin từ ROOT/pub/ROOT/pub/staticthư mục. Sau đó, nó được bắt đầu làm việc khi tôi hoàn nguyên nó trở lại .


2

Đã giải quyết !!!

Chạy các lệnh sau trong giao diện CLI của thư mục gốc Magento2 của bạn:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Sau đó xóa thư mục var bằng lệnh này tại thư mục gốc của magento2.

rm -rf var/*

Sau đó làm mới trang chủ và bảng quản trị của bạn. Nó hoạt động !!!!! Mát mẻ !!!!


1

Tôi đã có cùng một vấn đề với 404s. Tôi đã giải quyết nó bằng cách đảm bảo chỉ thị Virtualhost trong Apache là chính xác. Đây là Virtualhost của tôi:

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

Và bạn cũng có thể nói, những gì đã sai trước đây? Nếu không, ví dụ này sẽ không giúp được nhiều cho người khác.
Fabian Schmengler


0

Tôi có vấn đề chính xác giống như OP và đơn giản là vì tôi đã đặt ngôn ngữ của mình thành en_AU, vì vậy sử dụng lệnh triển khai mặc định chỉ tạo ra en_USnội dung. Bạn phải thêm miền địa phương mà bạn thực sự đang sử dụng vào EN của lệnh, như thế này:

php bin/magento setup:static-content:deploy en_US en_AU

0

Tôi đã thử các giải pháp trên. Nhưng nó không giúp tôi. Mặc dù vậy, tôi đã sử dụng các lệnh tương tự mà chúng đã đề cập với các thay đổi của chuỗi. Họ đang,

  1. xóa bộ nhớ cache, composer_home, thế hệ, nhật ký, page_cache, tmp và view_pre được xử lý từ thư mục var

  2. chạy từng lệnh sau một.

Bộ lập chỉ mục bin bin / magento: reindex

Bộ nhớ cache php / magento: tuôn ra

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

Tôi hy vọng điều này có thể giúp cho một người như tôi.


0

Vô hiệu hóa mod_pagespeed

Pagespeed xử lý một thể hiện "được lưu trong bộ nhớ cache" của nội dung của bạn bằng chữ viết tắt, tức là nếu đây là tệp bình thường.

hình ảnh

Nó sẽ được thiết lập như sau.

image.pagespeed.css

Trên đây là một ví dụ rất đơn giản, nhưng bạn đã có thể thấy vấn đề tiềm ẩn ở đâu. Điều này có thể gây ra tải nội dung tĩnh không đúng do không thể được tìm thấy thông qua đường dẫn cốt lõi, do thực tế là những thứ đó là tạm thời. Đây là một vấn đề di truyền với Mod_Pagespeed, vì vậy chúng tôi khuyên bạn nên tắt nó.

ansewer hỗ trợ sao chổi nhanh, và nó đã giải quyết vấn đề của tôi


0

Đối với Ubuntu 18.04 (Bionic). Tôi đã sử dụng các bước sau để các tệp tĩnh tải chính xác.

Sau khi cài đặt hoàn tất:

Đảm bảo mô-đun apache 'viết lại' được bật nếu không thì hãy làm theo

  • cd /etc/apache2
  • chạy lệnh a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Sau đó thực hiện các thay đổi sau

Sửa đổi từ:

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

đến

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Sau đó khởi động lại apache

sudo service apache2 restart

hoặc là

sudo /etc/init.d/apache2 restart

Sau đó thay đổi quyền cho <magento root director>

  • chmod -R 774 /var/www/html/<magento root director>

Sau đó triển khai nội dung tĩnh

  • php bin/magento setup:static-content:deploy -f (-f là bắt buộc nếu bạn đang trong env phát triển)

Sau đó xóa bộ nhớ cache và reindex

  • <magento root directory> php bin/magento cache:flush
  • <magento root directory> php bin/magento indexer:reindex

HOẶC LÀ

  • <magento root directory> rm -R /var/cache*

Sau đó truy cập trang chủ của bạn bằng cách sử dụng

  • 127.0.0.1/your_configured_url thay vì localhost/your_configured_url

0

Trình soạn thảo mương và cài đặt bằng cách sử dụng zip mới nhất từ đây

Điều đó đã làm việc cho tôi

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.