Rumah  >  Soal Jawab  >  teks badan

Pengehosan tapak web statik S3: ubah hala semua laluan ke index.html

Saya menggunakan S3 untuk mengehoskan aplikasi JavaScript yang akan menggunakan HTML5 PushStates. Masalahnya, jika pengguna menanda halaman mana-mana URL, ia tidak menyelesaikan apa-apa. Apa yang saya perlukan ialah dapat menerima semua permintaan url dan menyampaikan index.html akar dalam baldi S3 saya, dan bukannya melakukan ubah hala penuh. Aplikasi JavaScript saya kemudiannya boleh menghuraikan URL dan menyampaikan halaman yang betul.

Adakah terdapat cara untuk memberitahu S3 supaya menyediakan index.html untuk semua permintaan URL dan bukannya mengubah hala? Ini serupa dengan menyediakan apache untuk mengendalikan semua permintaan masuk dengan menyediakan satu index.html, seperti yang ditunjukkan dalam contoh ini: https://stackoverflow.com/a/10647521/1762614. Saya benar-benar ingin mengelak daripada menjalankan pelayan web hanya untuk mengendalikan laluan ini. Ia sangat menarik untuk melakukan segala-galanya dari S3.

P粉127901279P粉127901279340 hari yang lalu618

membalas semua(1)saya akan balas

  • P粉231112437

    P粉2311124372023-10-16 19:14:41

    Dengan bantuan CloudFront, masalah ini boleh diselesaikan dengan mudah tanpa penggodaman URL.

    • Buat baldi S3, contohnya: bertindak balas
    • Buat pengedaran CloudFront dengan tetapan berikut:
      • Objek akar lalai: index.html
      • Nama domain sumber: Domain baldi S3, contohnya: react.s3.amazonaws.com
    • Pergi ke tab Halaman Ralat dan klik Buat Respons Ralat Tersuai:
      • Kod Ralat HTTP: 403: Dilarang (404: Tidak Ditemui, jika laman web statik S3)
      • Respons ralat tersuai: Ya
      • Laluan halaman respons:/index.html
      • Kod respons HTTP: 200: OK
      • Klik Buat

    balas
    0
  • Batalbalas