Làm cách nào để sửa HTTP 404 trên Trang Github?


166

Đây là kho GitHub của tôi trên gh-pagesnhánh. Mọi thứ đều ổn, tôi có index.htmlcác thư mục CSS, JS và hình ảnh của mình.

Nhưng khi tôi truy cập http://roine.github.com/p1 tôi không tìm thấy HTTP 404.

Bất kỳ lời giải thích và giải pháp?


2
Tôi giả sử bạn làm theo các tài liệu ? Bạn đã có email chưa? - Từ 404: "Chúng tôi sẽ gửi email cho bạn khi trang của bạn được xây dựng. Có thể mất đến mười phút cho đến khi trang của bạn khả dụng."
David Cain

Tôi đã thử trang được tạo và nó hoạt động tốt. Sau đó, tôi đã loại bỏ nhánh gh-page và xây dựng lại nó bằng html tùy chỉnh của mình. Tôi đang đợi từ ít nhất một giờ bây giờ
Jonathan de M.

1
hãy thử với https. nếu nó hoạt động thì sau một thời gian nó sẽ hoạt động vớihttp
Rohit Suthar

1
Thủ thuật https đã làm việc cho tôi theo một cách khác. Tôi có mọi thứ đúng và trang cài đặt cho biết trang web được xuất bản, cho tôi đúng url. Tuy nhiên, nó tiếp tục cung cấp 404. Tôi đã thay đổi url thành http, nó hoạt động, sau đó https cũng hoạt động. Có vẻ như trang web http cần được truy cập để "kích hoạt" nó trước.
dracodoc

2
Đối với tôi nó bắt đầu hoạt động sau 10-20 phút. Nó cần có thời gian. Vì vậy, hãy kiên nhẫn.
MechaCode

Câu trả lời:


181

Tôi chỉ có một cam kết với tất cả các tập tin của tôi. Tôi đã đẩy một cam kết trống, làm mới trang và nó hoạt động.

git commit --allow-empty -m "Trigger rebuild"
git push

Nếu điều này không hoạt động, như @Hendrikto đã chỉ ra trong các bình luận, hãy xem trang trạng thái Github và đảm bảo Trang GitHub đang hoạt động.


2
Tôi đang sử dụng gói npm angular-cli-ghpages và những gì tôi đã làm là thêm một khoảng trắng vào tệp index.html của mình, chạy lại lệnh "npx ngh" để đẩy một cam kết mới cho tôi đạt được kết quả tuyệt vời tương tự. Cảm ơn, điều này đã làm tôi bối rối và câu trả lời của bạn đã truyền cảm hứng cho tôi để làm điều này.
Patrick Graham

nếu bạn không muốn sử dụng dòng lệnh, bạn có thể chỉnh sửa direclty README.md của mình từ giao diện web.
Barshe Le Besnerais

2
Nó cũng có thể là một vấn đề với chính Github. Trang này cho bạn biết trạng thái của Github. Tôi đã có cùng một vấn đề, và không có sửa chữa làm việc. Trang trạng thái cho biết "hiệu suất bị suy giảm" và tôi phải đợi các máy chủ hoạt động trở lại.
Hendrikto

Điểm hay @Hendrikto, tôi đã thêm một tham chiếu đến nhận xét của bạn trong câu trả lời.
Nycen

77

Trong trường hợp của tôi, tôi đã có các thư mục có tên bắt đầu bằng _(như _css_js), mà GH Pages bỏ qua theo quy tắc xử lý Jekyll. Nếu bạn không sử dụng Jekyll, cách giải quyết là đặt một tệp có tên .nojekylltrong thư mục gốc.


4
.nojekyll là điều bắt buộc nếu bạn không sử dụng Jekyll, tài liệu ở đây: github.com/blog/572-bypassing-jekyll-on-github-pages
Claudiu Constantin

2
Cảm ơn bạn vì điều này, tôi đã gửi email cho github và yêu cầu họ cập nhật hướng dẫn của họ tại Pages.github.com (không đề cập đến tệp .nojekyll)
sunyata

1
Cảm ơn! Nó được yêu cầu cho ứng dụng Vue, quá tệ, nó không được đề cập trong hướng dẫn triển khai vue-cli.
Ondřej evčík

CÁi này đã sửa nó giúp tôi. Trang web người dùng của tôi ban đầu hoạt động mà không có nó nhưng đã ngừng hoạt động. Bạn chỉ có thể thêm một tệp trực tuyến và cam kết nó ở đó quá. Tôi đã làm điều này, làm mới và nó ngay lập tức làm việc.
bot19

@Supuhstar cảm ơn bạn. bạn cứu mạng tôi)
voronovam

72

Tôi đã thực hiện tất cả các thủ thuật ở đây trên My Fork để sửa trang 404 trên Trang Github nhưng nó vẫn giữ nguyên 404.

Finaly nhận thấy rằng trình duyệt của tôi hầu như không giữ bộ đệm 10 phút trước khi lên web.

Chỉ cần thêm /index.htmlvào cuối URL sau đó nó xuất hiện và giải quyết vụ việc.

https://username.github.io/index.html


1
Điều này làm việc cho tôi. Tôi đã tạo trang web theo hướng dẫn trong trang Trang GitHub chính để nó thất vọng vì nó không hoạt động.
CGK

1
Cảm ơn! Tôi đã từng gặp vấn đề tương tự. Thật kỳ lạ khi chúng ta phải thêm /index.html.
Raja Rao

1
Tôi đã xóa một bộ đệm mềm nhưng nó không hoạt động nhưng thêm /index.html đã hoạt động. Cảm ơn
Hoàng tử Tegaton

1
Tôi cũng làm việc cho tôi nhưng điều này chưa bao giờ xảy ra với tôi trước đây, tôi hiện có nhiều trang đang chạy trên cả username.github.iousername.github.io/ <additable
Sanchit Batra

tôi đã phải mở giao diện điều khiển dev và buộc index.html trong url. Cảm ơn o /
heavyrick

50

Bốn tháng trước tôi đã liên hệ với bộ phận hỗ trợ và họ nói với tôi rằng đó là một vấn đề về phía họ, họ đã tạm thời khắc phục nó (đối với cam kết hiện tại).

Hôm nay tôi đã thử lại

  1. Tôi đã xóa chi nhánh gh-page trên github

    git push origin --delete gh-pages

  2. Tôi đã xóa chi nhánh gh-page trên địa phương

    git branch -D gh-pages

  3. Tôi ginitialized git

    git init

  4. Tôi đã tạo lại chi nhánh trên địa phương

    git branch gh-pages

  5. Tôi đã đẩy nhánh gh-page lên github

    git push origin gh-pages

Hoạt động tốt, cuối cùng tôi có thể cập nhật các tập tin của tôi trên trang.


31
Rõ ràng, bạn thậm chí không cần phải xóa chi nhánh địa phương của mình. Chỉ cần git checkout gh-pages ; git push origin --delete gh-pages ; git push originbạn đã hoàn thành.
thú vị khác

4
Xóa chi nhánh từ xa và đẩy tôi một lần nữa giải quyết vấn đề. Trang đã được nhìn thấy sau một phút.
Kulbi

Tôi nghĩ rằng nó giả sử là một nhánh "mồ côi"
wayofthefuture

Chỉ cần xóa nhánh gốc ("gh-page") và làm lại mọi thứ. Đã làm cho tôi!
wle8300

34

Nếu bạn chưa có, hãy chọn chủ đề Jekyll trong tab cài đặt Trang GitHub của bạn. Rõ ràng điều này là bắt buộc ngay cả khi bạn không sử dụng Jekyll cho trang Pages của mình.

Ảnh chụp màn hình cài đặt GitHub


8
Tôi đã nhận được 404 Không tìm thấy và đã thử tất cả mười tám giải pháp khác được đề xuất trong câu trả lời ở đây. Tôi đã ghi lại các nỗ lực của mình trong một câu hỏi trùng lặp: HTML rất đơn giản dẫn đến 404 Không tìm thấy trên Trang GitHub . Câu trả lời thứ 19 của Chris là câu trả lời cho tôi. GitHub Pages là một dịch vụ tuyệt vời, thật xấu hổ vì tài liệu quá kém.
dumbledad

3
Chỉ cần chọn một lược đồ vẫn chưa đủ, bạn cũng cần tạo một cam kết mới trên gh-pagesnhánh để kích hoạt cập nhật sau đó!
sschuberth

20

Tôi đã có cùng một vấn đề sau khi yêu cầu repo với một gh-pageschi nhánh. Tôi đã có thể khắc phục bằng cách chỉ cần đẩy một cam kết mới (chỉ khoảng trắng vào index.html) đến gh-pageschi nhánh của ngã ba của tôi .


Tôi đặt một khoảng trắng trong "index.html", cam kết và đẩy các thay đổi. Không có chuyện gì xảy ra. Xóa khoảng trắng khỏi tên tệp, cam kết và đẩy các thay đổi một lần nữa và nó đã hoạt động! Cảm ơn.
Nahiyan

cũng lưu ý rằng các trang github sử dụng một cửa sổ bộ đệm nhỏ (10 phút tại thời điểm viết Cache-Control:max-age=600:). vì vậy bạn cũng có thể phải đợi trên cửa sổ bộ đệm đó hết hạn hoặc buộc làm mới trình duyệt của bạn.
Clay

1
Tại sao phải lộn xộn với khoảng trắng? Chỉ cần đẩy một cam kết trống với --allow-empty.
Hendrikto

18

Trong trường hợp của tôi vào ngày 8 tháng 8 năm 2017

  1. nếu trang người dùng của bạn là https://github.com/mgravell , tên repo của bạn phải là mgravell.github.io
  2. dưới root, tạo một tập tin index.html

  3. dưới root, tạo một thư mục docs , tạo tệp CNAMEbên dưới docs(lưu ý: KHÔNG mở rộng như .txt, đảm bảo hệ thống tệp của bạn hiển thị tiện ích mở rộng)

  4. gh-pageschi nhánh là tùy chọn, masterchi nhánh là đủ

thêm : kiểm tra tài liệu chính thức tại đây: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/


1
Nó đã làm! Thêm thư mục tài liệu trống và tệp CNAME trống (không có phần mở rộng), đã thực hiện thủ thuật !!
Jose A

Thiếu CNAME ở đây nữa :)
Frexuz

Tập tin CNAME có nên trống không? Nếu không những gì nên có trong đó?
dumbledad

@dumbledad tập tin trống sẽ ổn
Vô thời hạn

15

Chỉ cần chờ khoảng mười phút đến một giờ. Nếu nó vẫn không hoạt động, liên hệ với github. Thông thường đó là vấn đề ở cuối của họ. Nhưng, nếu bạn đang vội, bạn có thể thử mở bằng cách thêm "?" dấu hỏi ở cuối URL. Nó buộc truy vấn để tìm kiếm tài nguyên. Như thế này:

http://roine.github.com/p1?


14

Các trang của tôi cũng giữ 404'ing. Liên hệ với bộ phận hỗ trợ và họ chỉ ra rằng url phân biệt chữ hoa chữ thường; giải quyết vấn đề của tôi


2
Tôi đã thử cả hai, có và không có vốn, trước khi liên hệ với bộ phận hỗ trợ
Jonathan de M.

3

Nếu bạn chắc chắn rằng cấu trúc của bạn là chính xác, chỉ cần đẩy một cam kết trống hoặc cập nhật tệp index.html với một số khoảng trống, nó sẽ hoạt động!



2

trong trường hợp của tôi, tôi đã phải đi đến cài đặt dự án và kích hoạt các trang github. Mặc định là tắt



2

Trong trường hợp của tôi, tất cả các đề xuất ở trên là chính xác. Tôi đã có hầu hết các trang làm việc ngoại trừ một số trang đã trả về 404 mặc dù các tệp đánh dấu ở đó và chúng có vẻ đúng. Đây là những gì đã sửa nó cho tôi trên các trang này:

  • Trên một trang, có một vài ký tự đặc biệt không phải là một phần UTF-8và tôi nghĩ đó là lý do tại sao các trang GitHub không thể hiển thị chúng. Cập nhật / xóa các char này và đẩy một cam kết mới đã sửa nó.
  • Trên một trang khác, tôi thấy rằng có các dấu nháy đơn 'xung quanh tiêu đề, tôi đã xóa chúng và nội dung trang bắt đầu hiển thị tốt

2

Tôi đã có vấn đề chính xác với typedocs. README.md hoạt động nhưng không có tài liệu thực tế nào được tạo bởi chuỗi tài liệu của tôi được hiển thị, tôi chỉ có màn hình 404 Github Pages.

Để khắc phục điều này, chỉ cần đặt một tệp trống trong thư mục / docs của bạn (hoặc bất cứ nơi nào bạn tạo tài liệu của mình) và gọi nó .nojekyll

Để xác nhận, cấu trúc tệp của bạn bây giờ sẽ trông như sau:

./docs/.nojekyll  # plus all your generated docs

Đẩy cái này lên repo Github từ xa của bạn và các liên kết của bạn sẽ hoạt động ngay bây giờ.

Đồng thời đảm bảo rằng bạn đã chọn trong cài đặt Github của mình:

Settings -> Github Pages -> Source -> master brach /docs folder

Tùy thuộc vào khung tài liệu của bạn, bạn có thể phải tạo lại tệp này mỗi lần cập nhật tài liệu của mình, đây là một ví dụ về việc sử dụng typedocs & tạo tệp .nojekyll mỗi lần trong tệp pack.json:

# package.json

      "scripts": {
        "typedoc": "typedoc --out docs src && touch docs/.nojekyll"
      },

1

Tôi ràng buộc miền của tôi trước khi vấn đề này xuất hiện. Tôi cam kết và đẩy chi nhánh gh-page và nó đã giải quyết vấn đề của tôi. Cam kết mới buộc jekyll xây dựng lại các trang của bạn.


1

Trong trường hợp của tôi, URL khá dài. Vì vậy, tôi đoán có một giới hạn. Tôi đặt nó vào tên miền phụ tùy chỉnh của tôi và nó đã hoạt động.


1

Nếu bạn thấy 404 thậm chí mọi thứ đều ổn, hãy thử chuyển đổi https / http.

Câu hỏi ban đầu có url sai, thông thường bạn có thể kiểm tra cài đặt repo và tìm đúng url cho trang web được tạo.

Tuy nhiên, tôi có mọi thứ được thiết lập chính xác và trang cài đặt cho biết nó đã được xuất bản, sau đó tôi vẫn thấy 404.

Cảm ơn nhận xét của @Rohit Suthar (mặc dù nhận xét đó là sử dụng https), tôi đã thay đổi url thành http và nó đã hoạt động, sau đó https cũng hoạt động.


1

Trên một repo riêng, khi tôi lần đầu tiên thêm và đẩy nhánh gh-page của mình lên github, cài đặt cho các trang github sẽ tự động thay đổi để chỉ ra rằng nhánh gh-page sẽ được xuất bản, nhưng không có thanh màu xanh hoặc màu xanh với github.io url và không có tùy chọn tên miền tùy chỉnh.

Mãi cho đến khi tôi chuyển nguồn thành chủ và nhanh chóng chuyển nguồn trở lại gh-trang mà nó thực sự được cập nhật với thanh màu xanh lá cây có chứa url được xuất bản.


1
Điều này có ích. Dự án của tôi lúc đầuriêng tư và trong trạng thái đó, tôi đã đẩy dự án lên các trang Github và tôi nhận được 404 (ofc). Sau khi chuyển đổi từ gh-pagestới master, và sau đó trở lại từ masterđể gh-pagestất cả mọi thứ vẫn ổn và ứng dụng bắt đầu làm việc.
Zrna

1

Một biến thể khác của lỗi này:

Tôi đã thiết lập trang Github đầu tiên của mình sau một hướng dẫn nhưng đã cho tệp readme.mdmột - theo quan điểm của tôi - tên có ý nghĩa hơn : welcome.md.

Đó là một sai lầm chết người:

Chúng tôi sẽ sử dụng tệp README của bạn làm chỉ mục của trang web nếu bạn không có index.md(hoặc index.html), không giống với khi bạn duyệt đến kho lưu trữ trên GitHub.

từ Xuất bản với Trang GitHub, giờ đây dễ dàng như 1, 2, 3

Sau đó tôi đã có thể truy cập trang web của mình bằng published atliên kết được chỉ định trong Repository/ Settings/ GitHub Pagestheo sau welcome.htmlhoặc ngắn hơn welcome.


1

Vì một số lý do, việc triển khai các trang GitHub đã ngừng hoạt động vào ngày hôm nay (2020-may-05). Trước đây tôi không có bất kỳ tệp html nào, chỉ có các tệp md. Tôi đã cố gắng tạo một index.html và nó đã xuất bản trang ngay lập tức. Sau khi xóa index.html, ấn phẩm tiếp tục hoạt động.


1

Trong trường hợp của tôi, phản ứng là cần thiết để chọn nhánh gh-page:

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


0

Chuyển đến phần cài đặt của kho lưu trữ của bạn và chọn nhánh chính tại phần Nguồn và nhấp vào nút lưu sau khi làm mới trang đó và bạn sẽ có thể thấy liên kết của trang của mình!.


0

Tôi cũng gặp phải vấn đề này (404) và nguyên nhân gốc là tập tin của tôi đã được đặt tên INDEX.md. Tôi đã phát triển trên Windows và trang Jekyll cục bộ của tôi đã hoạt động (vì Windows xử lý trường hợp tên tệp không nhạy cảm theo mặc định). Khi được đẩy lên Github, nó không hoạt động. Khi tôi đổi tên INDEX.mdđể index.md, mọi thứ hoạt động tốt.


0

Một kịch bản khác:

  • sử dụng Trang tổ chức (không phải trang Dự án) có kho lưu trữ có tên <orgname>.github.io
  • tài liệu nguồn dưới dạng đánh dấu trong masterchi nhánh (asciidoc)
  • Travis CI kéo các tệp tài liệu nguồn từ mastervà đẩy các tệp html được tạo sang gh-pagesnhánh

Các gh-pageschi nhánh được cập nhật với các trang html tạo ra. EnvironmentTab GitHub cung cấp liên kết đến trang tổ chức. Nhấp vào nó dẫn đến một 404.

Theo https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/

Trang người dùng và tổ chức có loại kho lưu trữ này chỉ được xuất bản từ masterchi nhánh

Nếu tôi hiểu điều này một cách chính xác, Trang GitHub sẽ không được xuất bản từ gh-pageschi nhánh nếu bạn đang tạo một trang web Userhoặc Organizationthay vì một Projecttrang web.

Tôi đã đổi tên repo của mình để biến nó thành một Projecttrang web chứ không phải là Organizationtrang web và sau đó gh-pageschi nhánh được xuất bản như mong đợi.


0

Tôi có cùng một vấn đề .. Vấn đề rất lạ .. HTML của tôi có không gian sau tiêu đề

> <title>
> 
> <script>

Đã sửa, sau khi xóa không gian

> <title>
> <script>

0

Ngoài ra, các trang GitHub hiện không hỗ trợ Git LFS . Như vậy, nếu bạn có hình ảnh (hoặc tài sản nhị phân khác) trong các trang GitHub được cam kết với Git LFS, bạn sẽ nhận được 404 không tìm thấy cho các tệp đó.

Điều này sẽ khá phổ biến đối với tài liệu được tạo bằng Doxygen hoặc công cụ tương tự.

Giải pháp trong trường hợp này là đơn giản là không cam kết các tệp đó với Git LFS.


0

Trong trường hợp của tôi, kho lưu trữ của tôi là riêng tư. Làm cho kho lưu trữ công khai và đi qua tất cả các bước một lần nữa.


0

Tôi cũng gặp phải vấn đề này, các trang của tôi nhận được 404. Và sau đó tôi đã thêm README.md trên kho lưu trữ của mình và 404 đã biến mất.

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.