Trang GitHub là giải pháp chính thức của GitHub cho vấn đề này.
raw.githubusercontent
làm cho tất cả các tệp sử dụng text/plain
loại MIME, ngay cả khi tệp là tệp CSS hoặc JavaScript. Vì vậy, https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
sẽ không phải là loại MIME chính xác mà thay vào đó là một tệp văn bản gốc và liên kết nó thông qua <link href="..."/>
hoặc <script src="..."></script>
sẽ không hoạt động. CSS sẽ không áp dụng / JS sẽ không chạy.
Trang GitHub lưu trữ repo của bạn tại một URL đặc biệt, vì vậy tất cả những gì bạn phải làm là đăng ký các tệp của mình và đẩy. Lưu ý rằng trong hầu hết các trường hợp, Trang GitHub yêu cầu bạn phải cam kết với một nhánh đặc biệt , gh-pages
.
Trên trang web mới của bạn, thông thường https://‹user›.github.io/‹repo›
, mọi tệp được cam kết cho gh-pages
chi nhánh (cam kết gần đây nhất) có mặt tại url này. Vì vậy, sau đó bạn có thể liên kết đến tệp js của mình thông qua <script src="https://‹user›.github.io/‹repo›/file.js"></script>
và đây sẽ là loại MIME chính xác.
Bạn có xây dựng tập tin?
Cá nhân, đề nghị của tôi là chạy chi nhánh này song song master
. Trên gh-pages
nhánh, bạn có thể chỉnh sửa .gitignore
tập tin để kiểm tra tại tất cả các quận / build file bạn cần cho trang web của bạn (ví dụ: nếu bạn có bất kỳ minified / tập tin biên dịch), trong khi giữ cho chúng phớt lờ trên của bạnmaster
nhánh . Điều này hữu ích vì bạn thường không muốn theo dõi các thay đổi trong tệp xây dựng trong repo thông thường của mình. Mỗi khi bạn muốn cập nhật các tệp được lưu trữ của mình, chỉ cần hợp nhất master
vào gh-pages
, xây dựng lại, cam kết và sau đó đẩy.
(protip: bạn có thể hợp nhất và xây dựng lại trong cùng một cam kết với các bước này :)
$ git checkout gh-pages
$ git merge --no-ff --no-commit master # prepare the merge but don’t commit it (as if there were a merge conflict)
$ npm run build # (or whatever your build process is)
$ git add . # stage the newly built files
$ git merge --continue # commit the merge
$ git push origin gh-pages