Ketika saya mencoba mengubah referensi tertaut dari file JavaScript lokal ke versi mentah GitHub, file pengujian saya berhenti berfungsi. Kesalahannya adalah:
Menolak untuk menjalankan skrip dari ... karena tipe MIME-nya (
text/plain
) tidak dapat dieksekusi, dan pengecekan tipe MIME yang ketat diaktifkan.
Apakah ada cara untuk menonaktifkan perilaku ini atau apakah ada layanan yang memungkinkan menautkan ke file mentah GitHub?
Kode kerja:
<script src="bootstrap-wysiwyg.js"></script>
Kode tidak bekerja:
<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>
javascript
github
AuthorProxy
sumber
sumber
rawgit
cache tidak pernah diperbarui .Jawaban:
Ada adalah solusi yang baik untuk ini, sekarang, dengan menggunakan jsdelivr.net .
Langkah-langkah :
raw.githubusercontent.com
kecdn.jsdelivr.net
/gh/
sebelum nama pengguna Anda.branch
nama.@version
(jika Anda tidak melakukan ini, Anda akan mendapatkan yang terbaru - yang dapat menyebabkan caching jangka panjang)Contoh :
Gunakan URL ini untuk mendapatkan versi terbaru:
Gunakan URL ini untuk mendapatkan versi tertentu atau melakukan hash:
Untuk lingkungan produksi , pertimbangkan untuk menargetkan tag tertentu atau komit-hash daripada cabang. Menggunakan tautan terbaru dapat mengakibatkan penyimpanan file dalam jangka panjang, menyebabkan tautan Anda tidak diperbarui saat Anda mendorong versi baru. Menautkan ke file dengan commit-hash atau tag membuat tautan ini unik untuk versi.
Mengapa ini dibutuhkan?
Pada 2013, GitHub mulai menggunakan
X-Content-Type-Options: nosniff
, yang menginstruksikan lebih banyak browser modern untuk menegakkan pengecekan tipe MIME yang ketat. Ini kemudian mengembalikan file mentah dalam tipe MIME yang dikembalikan oleh server, mencegah browser menggunakan file seperti yang dimaksudkan (jika browser menghormati pengaturan).Untuk latar belakang tentang topik ini, silakan merujuk ke utas diskusi ini .
sumber
gist.githubusercontent.com
denganrawgist.com
dan mendapatkannya bekerja.Ini tidak lagi mungkin. GitHub telah secara eksplisit menonaktifkan hotlinking JavaScript, dan versi browser yang lebih baru menghargai pengaturan itu.
Kepala: dukungan tajuk nosniff datang ke Chrome dan Firefox
sumber
rawgithub.com
redirect kerawgit.com
Jadi contoh di atas sekarang akan menjadihttp://rawgit.com/user/package/master/link.min.js
sumber
GitHub Pages adalah solusi resmi GitHub untuk masalah ini.
raw.githubusercontent
membuat semua file menggunakantext/plain
tipe MIME, bahkan jika file tersebut adalah file CSS atau JavaScript. Jadihttps://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
bukan jenis MIME yang benar tetapi akan menjadi file plaintext, dan menghubungkannya melalui<link href="..."/>
atau<script src="..."></script>
tidak akan berfungsi — CSS tidak akan berlaku / JS tidak akan berjalan.GitHub Pages meng-host repo Anda di URL khusus, jadi yang harus Anda lakukan adalah check-in file Anda dan tekan. Perhatikan bahwa dalam kebanyakan kasus, Halaman GitHub mengharuskan Anda untuk berkomitmen ke cabang khusus
gh-pages
,.Di situs baru Anda, yang biasanya
https://‹user›.github.io/‹repo›
, setiap file yang dikomit kegh-pages
cabang (komit terbaru) ada di url ini. Jadi, Anda dapat menautkan ke file js Anda melalui<script src="https://‹user›.github.io/‹repo›/file.js"></script>
, dan ini akan menjadi tipe MIME yang benar.Apakah Anda sudah membuat file?
Secara pribadi, rekomendasi saya adalah menjalankan cabang ini secara paralel
master
. Digh-pages
cabang, Anda dapat mengedit.gitignore
file Anda untuk memeriksa semua file dist / build yang Anda butuhkan untuk situs Anda (misalnya jika Anda memiliki file yang diperkecil / dikompilasi), sambil tetap mengabaikannya dimaster
cabang Anda . Ini berguna karena Anda biasanya tidak ingin melacak perubahan dalam file membangun di repo reguler Anda. Setiap kali Anda ingin memperbarui file host, hanya menggabungkanmaster
ke dalamgh-pages
, membangun kembali, komit, dan kemudian mendorong.(protip: Anda dapat menggabungkan dan membangun kembali di komit yang sama dengan langkah-langkah ini :)
sumber
Jawaban di atas dengan jelas menjawab pertanyaan tetapi saya ingin memberikan alternatif lain - Pandangan / pendekatan yang berbeda untuk menyelesaikan masalah yang sama.
Anda juga dapat menggunakan ekstensi browser untuk menghapus
X-Content-Type-Options
header respons untukraw.githubusercontent.com
file. Ada beberapa ekstensi browser untuk memodifikasi header respons.Jika Anda menggunakan Requestly, saya dapat menyarankan dua solusi
Solusi 1: Gunakan Modify Headers Rule dan hapus tajuk respons
Langkah
Remove
->Response
->X-Content-Type-Options
Url
->Contains
->raw.githubusercontent.com
Solusi 2: Gunakan Ganti Aturan Host
raw.githubusercontent.com
denganrawgit.com
Periksa tangkapan layar ini untuk detail lebih lanjut
Cara menguji
Kami membuat JS Fiddle sederhana untuk menguji apakah kami dapat menggunakan file github mentah sebagai skrip dalam kode kami. Berikut adalah biola dengan kode berikut
Jika Anda melihat
Script evaluated successfully!
, itu berarti Anda dapat menggunakan file github mentah dalam kode Anda. Jika tidak,Problem evaluating script
menunjukkan bahwa ada beberapa masalah saat menjalankan skrip dari sumber github mentah.Saya juga menulis artikel di blog Requestly tentang ini. Silakan merujuknya untuk detail lebih lanjut.
Semoga ini bisa membantu !!
Penafian: Saya penulis Requestly Jadi Anda bisa menyalahkan apa pun yang tidak Anda sukai.
sumber
https://raw.githack.com/
menemukan situs ini menyediakan CDN untuk
nosniff
tajuk httpmime type
dengan nama extdan situs ini:
https://rawgit.com/
sumber
Untuk membuat semuanya jelas dan singkat
//raw.githubusercontent.com
->//rawgit.com
Perhatikan bahwa ini ditangani oleh hosting pengembangan rawgit dan bukan cdn mereka untuk hosting produksi
sumber
https://raw.githubusercontent.com
->https://rawgit.com
Jika tidak, jawaban ini paling jelas dan berfungsi.Kasus penggunaan saya adalah memuat direclty ' bookmarklets ' dari akun Bitbucket saya yang memiliki batasan yang sama dengan Github. Pekerjaan di sekitar saya datang adalah untuk AJAX untuk skrip dan dijalankan
eval
pada string respons, di bawah potongan didasarkan pada pendekatan itu.Perhatikan bahwa menambahkan
sourceURL
komentar adalah untuk memungkinkan debugging skrip dalam alat pengembang browser.sumber
Ketika sebuah file diunggah ke github, Anda dapat menggunakannya sebagai sumber eksternal atau hosting gratis. Troy Alford telah menjelaskannya di atas. Tetapi untuk membuatnya lebih mudah, izinkan saya memberi tahu Anda beberapa langkah mudah maka Anda dapat menggunakan file mentah github di situs Anda:
Ini tautan file Anda:
https://raw.githubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Sekarang untuk menjalankannya Anda harus menghapus https: // dan titik (.) Antara raw dan githubusercontent
Seperti ini:
rawgithubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Sekarang ketika Anda akan mengunjungi tautan ini, Anda akan mendapatkan tautan yang dapat digunakan untuk memanggil javascript Anda:
Inilah tautan terakhir:
https://rawgit.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Demikian pula jika Anda meng-host file css Anda harus melakukannya seperti yang disebutkan di atas. Ini adalah cara termudah untuk mendapatkan tautan sederhana untuk memanggil file css atau javascript eksternal yang dihosting di github.
Saya harap ini bermanfaat.
URL referensi: http://101helper.blogspot.com/2015/11/store-blogger-codes-on-github-boost-blogger-speed.html
sumber
Saya menemukan kesalahan ditampilkan karena komentar di awal file, Anda dapat menyelesaikan masalah ini, dengan hanya membuat file Anda sendiri tanpa komentar dan push to git, itu tidak menunjukkan kesalahan
Sebagai bukti, Anda dapat mencoba kedua file ini dengan kode pagination yang sama:
tanpa komentar
dengan komentar
sumber
Saya memiliki masalah yang sama dengan Anda, apa yang saya lakukan adalah perubahan
Ini bekerja untuk saya.
sumber
Cara paling sederhana:
<script type="text/plain" src="http://raw.githubusercontent.com/user/repo/branch/file.js"></script>
Dilayani oleh GitHub,
dan
sangat
dapat diandalkan.Dengan
text/plain
Tanpa
text/plain
sumber
raw.github.com
bukan akses yang benar-benar mentah ke file aset, tetapi tampilan yang diberikan oleh Rails. Jadi mengaksesraw.github.com
jauh lebih berat dari yang dibutuhkan. Saya tidak tahu mengaparaw.github.com
diimplementasikan sebagai tampilan Rails. Alih-alih memperbaiki masalah rute ini, GitHub menambahkanX-Content-Type-Options: nosniff
header.Penanganan masalah:
user.github.io/repo
sumber
raw.github.com
untuk memuat file - dan kemudian github menyadari bahwa mereka digunakan sebagai CDN, yang menyebabkan terlalu banyak lalu lintas. Akibatnya, mereka mengubahnya ke jenis rendering denganX-Content-Type-Options: nosniff
header, khusus untuk mencegah orang menggunakan layanan mereka seperti itu.Atau, jika membuat sisi server markup Anda, Anda bisa mengambil dan menyuntikkan. Misalnya, di JSTL Anda dapat melakukan ini:
Mereka tidak mengizinkan hotlinking karena suatu alasan, jadi mungkin bentuk yang buruk jika Anda ingin menjadi warga negara yang baik. Saya sarankan Anda cache javascript itu dan hanya benar-benar mengambil ulang secara berkala sesuai keinginan Anda.
sumber
Contoh
asli
cdn.jsdelivr.net
sumber