แบบอักษรถูกปิดกั้นไม่ให้โหลดโดยนโยบายการแบ่งปันทรัพยากรข้ามแหล่งกำเนิด: ไม่มี 'การเข้าถึงการควบคุมการอนุญาต - แหล่งกำเนิด'


16

เราพบข้อผิดพลาดนี้ใน Google Chrome เราคิดว่าทุกอย่างถูกต้องแล้ว แต่อาจจะไม่

แบบอักษรจากแหล่งกำเนิดhttp://skin.cdn.comถูกบล็อกไม่ให้โหลดโดยนโยบายการแชร์ทรัพยากรข้ามแหล่งกำเนิด: ไม่มีส่วนหัว 'การเข้าถึงการควบคุมการอนุญาตให้มีแหล่งกำเนิด' ปรากฏบนทรัพยากรที่ร้องขอ Origin http://domain2.comไม่อนุญาตให้เข้าถึง

และเรามีสิ่งต่อไปนี้ใน htaccess (ในรูทของโดเมน)

<IfModule mod_headers.c>    
Header add Access-Control-Allow-Origin "http://skin.cdn.com" 
</IfModule>

คำถาม:ฉันลืมการตั้งค่าอื่น ๆ ได้ไหม?

ขอบคุณมาก

คำตอบ:


17

เปลี่ยนรหัสไฟล์ htaccess ของคุณในไดเรกทอรีรากของเว็บไซต์ของคุณ (เช่นไฟล์ public_html ".htaccess" ของคุณ)

<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "http://skin.cdn.com"
    </IfModule>
</FilesMatch>

ตอนนี้ CDN ของคุณจะได้รับอนุญาตให้โหลดทรัพยากรของคุณเรียกพวกเขาว่าเป็นทรัพยากรที่ผ่านของคุณ (แบบอักษร)

ถ้ำ: คุณต้องล้างทั้งหมดใน CDN ของคุณดังนั้นไฟล์จะได้รับการอัปเดตภายในไม่กี่นาที


1
คำตอบของคุณทำงานอย่างไม่มีที่ติสำหรับฉัน แต่ฉันจะถามได้ไหมว่าทำไมคุณถึงเลือกไวด์การ์ดแทนการเลือกที่จะ จำกัด ไว้เฉพาะต้นกำเนิดที่เฉพาะเจาะจง
amgraham

วิธีนี้ยังคงใช้งานได้
ราหุล

0

ฉันไม่มีชื่อเสียงพอที่จะแสดงความคิดเห็นในคำตอบของ @Prashant Tapase แต่ไดเรกทอรีรากของคุณไม่ใช่ Public_html ของคุณ นี่คือไดเรกทอรีย่อยของไดเรกทอรีรากของคุณ & จากคำตอบที่ฉันได้ค้นคว้าคำสั่ง FileMatch ควรอยู่ใน IfModule ดังที่แสดงด้านล่าง

<IfModule mod_headers.c>
    <FilesMatch "\.(eot|otf|ttc|ttf|woff|woff2)$">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>

โปรดแก้ไขฉันหากนี่เป็นสิ่งที่ผิด
หรือคุณสามารถระบุแบบอักษรของ / URI ของ URL ได้ตามที่เขาได้กล่าวถึง

นอกจากนี้หากเป็น CDN คุณควรใช้รุ่น https ไม่ใช่ http หากเป็นไปได้

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