Magento 2 CSS และ JavaScript ไม่โหลดจากโฟลเดอร์ที่ถูกต้อง


35

ฉันหวังว่าบางคนที่นี่สามารถช่วยได้ ฉันพยายามติดตั้งและเรียกใช้ Magento 2 บน WAMP บนเครื่อง Windows 7 ด้วยความสำเร็จเพียงเล็กน้อย

หลังจากกระโดดผ่านห่วงจำนวนมากและหลากหลายเพื่อให้เว็บไซต์โหลดตอนนี้ฉันกำลังเผชิญกับ 404 คำตอบและไม่มีสไตล์หรือการโหลด javascript

สเป็คเป็นดังนี้:

  • ตัวอย่างวีโอไอพี-CE-2.0.0 +
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

เมื่อฉันดูที่คอนโซลของเบราว์เซอร์ท่ามกลางข้อผิดพลาดจะพยายามเข้าถึงไฟล์ที่ไม่ได้อยู่ในโฟลเดอร์ pub / static โฟลเดอร์ "frontend" ถูกโหลดขึ้นมาและไฟล์ส่วนใหญ่นั้นมีอยู่ ฉันสังเกตเห็นว่ามีบางไฟล์ CSS ที่ไม่มีอยู่

ในการรันคำสั่งการปรับใช้ PHP

php bin/magento setup:static-content:deploy

ที่กล่าวถึงในโพสต์อื่น ๆ ฉันได้รับข้อผิดพลาดด้านล่าง ฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไร

ข้อผิดพลาดร้ายแรง: ขนาดหน่วยความจำที่อนุญาตของ 134217728 ไบต์หมดลง (พยายามจัดสรร 64 ไบต์) ใน C: \ wamp \ www \ magento \ ผู้ขาย \ oyejorge \ less.php \ lib \ Less \ Visitor.php ที่บรรทัด 45

ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก

UPDATE

ฉันชนค่าเผื่อหน่วยความจำ PHP และรันสคริปต์ปรับใช้ php อีกครั้ง เวลานี้มันไม่ได้ผิดพลาดและดำเนินการอย่างเต็มที่ อย่างไรก็ตามปัญหาเดียวกันตามที่อธิบายไว้ข้างต้นยังคงมีอยู่ เว็บไซต์โหลด แต่ทุกครั้งที่พยายามโหลดหน้าใด ๆ หรือเนื้อหาผลลัพธ์ในหน้า 404 ไม่พบข้อผิดพลาดโดยไม่ต้องใส่สไตล์

โปรดดูข้อผิดพลาดใน Chrome Inspector ด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่


@TejabhagavanKollepara คำถามนี้ถูกถามครั้งแรกมีรูปแบบที่ดีและมีคำตอบที่ดีดังนั้น IMO คำถามอื่น ๆ คือผู้สมัครที่ถูกจับคู่ไม่ใช่คนนี้ ... Btw ถ้าการตั้งค่าสถานะในคำถามอื่น ๆ ที่ซ้ำกับคำถามนี้ถูกปฏิเสธ คุณไม่จำเป็นต้องตั้งค่าสถานะคำถามนี้ว่าเป็นคำถามซ้ำซ้อนกับคำถามอื่นเพื่อพยายามบรรลุเป้าหมายเดียวกัน
7ochem

ดูคำตอบของ SA เช่นกัน - การติดตั้ง Magento ใหม่อยู่ในโหมด "เริ่มต้น" (ไม่ใช่ "การผลิต") และไม่จำเป็นต้องมีการปรับใช้เนื้อหาแบบคงที่ซึ่งเป็นสิ่งที่คุณได้รับคำสั่งให้ทำในคำตอบอื่น ๆ ทั้งหมด
Jānis Elmeris

คำตอบ:


50

SOLUTION # 1 (หากคุณต้องการแก้ไขไฟล์ XML)

ฉันต้องการให้คุณดาวน์โหลด Magento 2 zip จากmagentocommerce.com/downloadด้วยข้อมูลตัวอย่างสร้างdbใหม่ในphpmyadminแยก zip ในโฟลเดอร์htdocs ติดตั้ง Magento 2 แต่ห้ามใช้localhostใช้127.0.0.1ใน URL ร้านค้าและ URL ผู้ดูแลระบบ หลังจากติดตั้งสำเร็จอย่ารัน magento

ตอนนี้เรากำลังจะล้าง / ลบแคชและเซสชันของ Magento 2 ไปที่เส้นทางต่อไปนี้และลบทุกอย่าง:

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

เมื่อ Magento 2 ไม่ได้อยู่ในโหมดการผลิตมันจะพยายามสร้าง symlink สำหรับแหล่งข้อมูลคงที่บนเซิร์ฟเวอร์ภายใน เราต้องเปลี่ยนพฤติกรรมของ Magento 2 โดยไปที่แก้ไขROOT > app > etc > di.xmlไฟล์ เปิดdi.xmlในเครื่องมือแก้ไขรหัสที่คุณชื่นชอบค้นหาvirtualType name="developerMaterialization"ส่วน ในส่วนด้านล่างคุณจะพบรายการ<item name="view_preprocessed" xsi:type="object">ที่ต้องแก้ไข คุณสามารถแก้ไขได้โดยการเปลี่ยนเนื้อหาต่อไปนี้:

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

ไปที่:

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

ตอนนี้ขั้นตอนสุดท้ายลบไฟล์เก่าที่สร้างขึ้นด้วย ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

โซลูชั่น # 2

ติดตั้งนักแต่งเพลง ตอนนี้ฉันต้องการให้คุณดาวน์โหลด Magento 2 zip จากmagentocommerce.com/downloadสร้างdbใหม่ในphpmyadminแยก zip ในโฟลเดอร์htdocs ติดตั้ง Magento 2 แต่ห้ามใช้localhostใช้127.0.0.1ใน URL ร้านค้าและ URL ผู้ดูแลระบบ หลังจากติดตั้งสำเร็จอย่ารัน magento

ตอนนี้เรากำลังจะตรวจสอบการติดตั้งนักแต่งเพลงปรับใช้เนื้อหาแบบคงที่ล้างแคชล้างวีโอไอพีและทำดัชนีบล็อกของวีโอไอพี 2 อีกครั้ง หากต้องการดำเนินการข้างต้นทั้งหมดให้กดปุ่ม WINDOWS + R เพื่อเปิดกล่องโต้ตอบ RUN และพิมพ์“ cmd” เพื่อเปิดพร้อมท์คำสั่ง

พิมพ์“ cd PATH_TO_YOUR_MAGENTO2_FILES ” เพื่อป้อนในไดเรกทอรีวีโอไอพี 2 รูท

ตอนนี้เพื่อตรวจสอบการติดตั้งนักแต่งเพลงในไดเรกทอรีด้านบนให้พิมพ์“ การติดตั้งผู้แต่ง

หากคุณได้รับข้อผิดพลาดในขั้นตอนนี้โปรดตรวจสอบการติดตั้งนักแต่งเพลงของคุณ

ในขั้นตอนนี้เรากำลังตั้งค่าเนื้อหาแบบคงที่เพื่อปรับใช้ในร้านค้า Magento ของเรา ในการดำเนินการนี้ให้พิมพ์“ การตั้งค่า php bin / magento: static-content: deploy

สำหรับผู้ที่ใช้Magento 2.2.x

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

หากคุณได้รับข้อผิดพลาดใด ๆ ให้ตรวจสอบ PHP.EXE และ PHP.INI Environment Variable ของคุณ

ล้าง / ล้าง Magento แคชโดยพิมพ์“ php bin / magento cache: flush ” ใน CMD

และในที่สุดก็ไปที่ Reindex Magento Static Blocks ประเภท“ php bin / magento indexer: reindex

คุณติดตั้ง Magento 2 สำเร็จแล้ว


4
นอกจากนี้ใน php.ini เปลี่ยนmax_execution_timeเป็น 500, memory_limitเป็น 2048M, post_max_sizeเป็น 2048M, upload_max_filesizeเป็น 2048M และmax_file_uploadsเป็น 2048
Fayyaz Khattak

ขอบคุณสำหรับการตอบสนองที่รวดเร็ว ฉันทำการเปลี่ยนแปลงเหล่านี้แล้ว แต่ไม่มีผล ฉันรีสตาร์ทเซิร์ฟเวอร์ WAMP หลังจากทำการเปลี่ยนแปลง ฉันได้แก้ไขคำถามเพื่อแสดงข้อผิดพลาดที่ฉันสามารถเห็นได้ในเครื่องมือตรวจสอบ Chrome
E.Gain

โอ้ฉันขอโทษที่ต้องพูดถึงอีกสิ่งหนึ่งก่อนอื่นให้ลบแคชและเซสชันทั้งหมดทำการเปลี่ยนแปลงในdi.xmlและลบทุกอย่างจากROOT> pub> static> DELETE ALL EXCEPT .HTACCESS
Fayyaz Khattak

1
@MagenX นี่คือมุมมองของทุกคนว่าเครื่องมือใดที่เขาชอบใช้มากกว่า ในสายตาของคุณคุณวิพากษ์วิจารณ์ทุกอย่างเหมือนค้อนแทนที่จะแบ่งปันมุมมองของการแก้ปัญหา
Fayyaz Khattak

1
โซลูชัน # 2 ทำงานได้อย่างมีเสน่ห์ขอขอบคุณที่ช่วยฉันได้หลายชั่วโมงถ้าไม่ใช่วันจัดการกับปัญหานี้!
Jonathan Marzullo

11

คุณเพียงแค่ต้องอัปเดตไฟล์ apache2.conf

บน Ubuntu 16.04

  1. เปิดและแก้ไขไฟล์ /etc/apache2/apache2.conf
  2. นำทางไปยังตำแหน่งในไฟล์ apache2.conf <Directory /var/www/>
  3. เปลี่ยน "AllowOverride None"เป็น"AllowOverride All"
  4. บันทึกไฟล์
  5. เริ่มต้นใหม่ apache2 -> sudo service apache2 restart

มันยากที่จะหาคำตอบนี้! ทุก ๆ ที่ที่คนแนะนำ (อีกครั้ง) การปรับใช้เนื้อหาแบบคงที่แม้ว่าการติดตั้ง Magento ใหม่อยู่ในโหมด "เริ่มต้น" (ไม่ใช่ "การผลิต") และไม่จำเป็นต้องมีการใช้งานเนื้อหาแบบคงที่
Jānis Elmeris

10

หากคุณประสบปัญหาการออกแบบโหลดหน้า css และ js หลังการติดตั้งใน magento2

โปรดทำตามขั้นตอนต่อไปนี้:

เปิดเทอร์มินัลแล้วไปยังรากของวีโอไอพี

 $ cd / var / www / html / magento2 

ขั้นตอนที่ 1.

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

ขั้นตอนที่ 2.

ตัวสร้างดัชนี $ php bin / magento: reindex

ขั้นตอนที่ 3

ตรวจสอบให้แน่ใจว่า apache“ rewrite_module” เปิดใช้งานแล้วรีสตาร์ทเซิร์ฟเวอร์

ขั้นตอนที่ 4

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

ขั้นตอนที่ 5

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

ขั้นตอนที่ 6

ลบโฟลเดอร์แคชภายใต้ var / แคช

ขั้นตอนข้างต้นทำงานได้ ฉันหวังว่าสิ่งนี้จะได้ผลสำหรับคุณเช่นกัน

แจ้งให้เราทราบหากมีปัญหาใด ๆ :)

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


1
เรียกใช้คำสั่งเหล่านี้ใน windows ได้อย่างไร
Hassan ALi

1
มันใช้งานได้สำหรับฉันเพียงแค่ 3 ขั้นตอนแรก :)
2560

6
ไม่ฉลาดนักที่จะตั้งค่าการอนุญาตเป็น 777 สำหรับไฟล์ทั้งหมดบนเซิร์ฟเวอร์
Chris Gudn

1
ฉันไม่ประทับใจกับขั้นตอนที่คุณให้สิทธิ์การอ่านอย่างเต็มรูปแบบในการติดตั้งวีโอไอพีทั้งชุด
Cyclonecode

1
การตั้งค่าการอนุญาตเป็น 777 เป็นคำแนะนำที่ไม่ดี แต่หวังว่าผู้ดูแลระบบคนใดก็จะรู้ดีกว่า
John Hall

6

สำหรับฉันมันเป็นเพียงเพราะ mod_rewrite ไม่ได้เปิดใช้งาน

sudo a2enmod rewrite

และ

service apache2 restart


1
โซลูชั่นที่สมบูรณ์แบบ !!! +1 :)
SagarPPanchal

6

ฉันมีปัญหาเดียวกันได้รับการแก้ไขโดยการเพิ่ม

sudo nano /etc/apache2/apache2.conf

แก้ไขสิ่งนี้

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

สำหรับสิ่งนี้

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

คุณควรเปิดใช้งานmod_rewriteโมดูล apache2 และใบรับรอง insall:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
สิ่งนี้บวก rm -rf var / * ที่เหมาะกับฉัน จุดที่ดีและดี
Jon Holland

6

นี่คือทางออกที่ง่ายที่สุดหากแสดงชื่อเวอร์ชันใน css path

ไลค์: pub / static / version323334 /

จากนั้นเรียกใช้แบบสอบถามนี้ใน mysql

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

หลังจากนั้นล้างแคชการกำหนดค่า

 bin/magento cache:clean config

คุณยังสามารถปิดการใช้งานเวอร์ชันไฟล์คงที่จากผู้ดูแลระบบ

ป้อนคำอธิบายรูปภาพที่นี่


4
สิ่งนี้ได้ผลสำหรับฉันขอบคุณ อย่างไรก็ตามการสืบค้นจะต้องได้รับการแก้ไข INSERT INTO core_config_data (เส้นทาง, value) ค่า ('dev / static / sign', 0);
Aftab Naveed

เส้นทางและค่า
อะไร

เส้นทาง, ค่าคือชื่อเขตข้อมูลที่ฉันกำหนดค่า (dev / static / sign, 0), เพียงแค่เรียกใช้ sql นี้มันควรจะทำงาน
Surendra Kumar Ahir

โซลูชั่นที่สมบูรณ์แบบ !!! ทำให้วันของฉัน :) +1
SagarPPanchal

5
  1. ลองปิดการใช้งานแคชหากคุณไม่ได้ปิดใช้งานมาก่อน
  2. ตรวจสอบให้แน่ใจว่าคุณมี Magento เวอร์ชันล่าสุดพร้อมโค้ดสะอาด หากคุณแก้ไขหรือปรับแต่งบางสิ่งให้แน่ใจว่าแก้ไขข้อผิดพลาดทั้งหมด
  3. เรียกใช้หลายคำสั่งด้านล่างอาจช่วยคุณได้

    php bin/magento indexer:reindex

    php bin/magento cache:flush

ลบโฟลเดอร์ใน

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

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


3

ในกรณีของฉันฉันลบ.htaccessไฟล์ROOT/pub/และROOT/pub/staticโฟลเดอร์โดยไม่ตั้งใจ จากนั้นก็จะเริ่มทำงานเมื่อฉันย้อนกลับไปมันกลับมา


2

แก้ไขแล้ว !!!

เรียกใช้คำสั่งต่อไปนี้ในอินเทอร์เฟซ CLI ของโฟลเดอร์รูทของ Magento2:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

จากนั้นลบโฟลเดอร์varโดยคำสั่งนี้ที่ root ของ magento2

rm -rf var/*

จากนั้นรีเฟรชหน้าแรกและแผงควบคุมของคุณ มันทำงาน !!!!! เจ๋ง !!!!


1

ฉันมีปัญหาเดียวกันกับ 404s ฉันแก้ไขมันด้วยการทำให้แน่ใจว่าคำสั่ง VirtualHost ใน Apache นั้นถูกต้อง นี่คือ VirtualHost ของฉัน:

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

และคุณสามารถบอกได้ว่าเกิดอะไรขึ้นก่อนหน้านี้ มิฉะนั้นตัวอย่างนี้จะไม่ช่วยคนอื่นมากนัก
Fabian Schmengler

0

ฉันแก้ไขได้โดยทำตามขั้นตอนเหล่านี้โดย BlueOrchidd:

https://community.magento.com/t5/Installing-Magento-2/Magento-2-Installation-Worst-Experience-Ever/mp/23786#M382

สิ่งสำคัญ: อย่าเปลี่ยนโลแคลเป็นอะไรก็ตามที่ en_US หลังจากจัดการการติดตั้งกับที่ ..


0

ฉันมีปัญหาเดียวกันกับ OP และมันเป็นเพียงเพราะฉันตั้งค่าภาษาของฉันen_AUดังนั้นการใช้คำสั่งเริ่มต้นปรับใช้สร้างen_USเนื้อหาเท่านั้น คุณต้องเพิ่มสถานที่ที่คุณใช้จริงกับคำสั่ง EN เช่นนี้:

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

0

ฉันลองแก้ไขปัญหาข้างต้น แต่มันก็ไม่ได้ช่วยอะไรฉัน แม้ฉันจะใช้คำสั่งเดียวกันซึ่งพวกเขากล่าวถึงการเปลี่ยนแปลงลำดับ พวกเขาเป็น,

  1. ล้างแคช, composer_home, การสร้าง, บันทึก, page_cache, tmp และ view_preprocessedจากไดเรกทอรีvar

  2. รันคำสั่งต่อไปนี้ทีละคำ

ตัวสร้างดัชนี php bin / magento: reindex

php bin / magento cache: flush

การตั้งค่า php bin / magento: เนื้อหาคงที่: ปรับใช้

ฉันหวังว่านี่อาจช่วยให้ใครบางคนเช่นฉัน


0

ปิดใช้งาน mod_pagespeed

Pagespeed ประมวลผลอินสแตนซ์ "แคช" ของเนื้อหาของคุณด้วยตัวย่อนั่นคือถ้านี่เป็นไฟล์ปกติ

image.css

มันจะถูกตั้งค่าดังนี้

image.pagespeed.css

ข้างต้นเป็นเพียงตัวอย่างง่ายๆ แต่คุณสามารถดูได้ว่าปัญหาพื้นฐานนั้นอยู่ที่ไหน สิ่งนี้สามารถทำให้การโหลดเนื้อหาสแตติกที่ไม่เหมาะสมเนื่องจากไม่สามารถหาได้ผ่านทางพา ธ หลักเนื่องจากข้อเท็จจริงเหล่านั้นเป็นการชั่วคราว นี่เป็นปัญหาที่สืบทอดมาจาก Mod_Pagespeed ดังนั้นทำไมเราถึงแนะนำให้ปิดการใช้งาน

ansewer สนับสนุนเร็วดาวหางและแก้ไขปัญหาของฉัน


0

สำหรับ Ubuntu 18.04 (ไบโอนิค) ฉันใช้ขั้นตอนต่อไปนี้เพื่อให้ไฟล์สแตติกโหลดอย่างถูกต้อง

หลังจากการติดตั้งเสร็จสมบูรณ์:

ตรวจสอบให้แน่ใจว่าโมดูล apache 'rewrite' ถูกเปิดใช้งานหากไม่ทำตาม

  • cd /etc/apache2
  • เรียกใช้คำสั่ง a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

จากนั้นทำการเปลี่ยนแปลงดังต่อไปนี้

แก้ไขจาก:

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

ไปยัง

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

จากนั้นรีสตาร์ท apache

sudo service apache2 restart

หรือ

sudo /etc/init.d/apache2 restart

จากนั้นเปลี่ยนการอนุญาตสำหรับ <magento root director>

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

จากนั้นปรับใช้เนื้อหาแบบคงที่

  • php bin/magento setup:static-content:deploy -f (-f เป็นสิ่งจำเป็นหากคุณอยู่ในการพัฒนา env)

จากนั้นล้างแคชและทำดัชนีใหม่

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

หรือ

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

จากนั้นเข้าถึงหน้าแรกของคุณโดยใช้

  • 127.0.0.1/your_configured_url แทน localhost/your_configured_url

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.