2013-11-26 18 views
7

AWS S3 kullanarak statik bir web sitesine sahibim (kullanım kolaylığı, kullanım kolaylığı ve çok ucuz olduğu için). Birden çok HTML belgesine sahip olduğumdaStatik Bir Web Sitesindeki Birden Fazla Sayfa AWS S3

. /name_of_file.html kullanarak onlara gidebilirim. HTML dosyasını yönlendirmek için bir yol var mı? URL bunun yerine /name_of_file diyor? URL'imde .html uzantısına sahip olmanın çirkinliğini beğenmedim ve tek bir sayfa web sitesi yapmaktan kaçınmayı tercih ediyorum. Bunları yüklerken sadece sonu kapalı .html uzantısını ortadan eğer

Teşekkür

cevap

9

Sürece text/html ayarlı Content-type başlığıyla dosya yükleyebilir olarak, sayfalar iyi çalışacak.

Aksi halde aklınıza gelen tek seçenek, S3 Redirects kullanmaktır, ancak bu, yalnızca .html olmadan sayfalara "gitmenize" izin verir - ancak daha sonra tarayıcıya yeniden yönlendirilen tarayıcıyı görürsünüz. .html adlı dosya ve .html, adres çubuğunda görünmeye devam edecektir, bu nedenle muhtemelen kazanan değil.

Alternatif olarak - ve bu oldukça esnektir fakat belki de bahsetmeye değer - HAProxy veya başka bir ters vekil sunucu çalıştıran bir EC2 örneğiyle istekleri karıştırabilir ve yeniden eklemek için bir nokta içermeyen istekleri (yeniden yönlendirmeyle) yeniden yazabilirsiniz. .html 'sonuna kadar, ancak bu tür "kullanım kolaylığı" yönünü ortadan kaldırır - hesap sınırı başına 100 kovadan çok daha fazla siteye ev sahipliği yapmanıza izin verebilse de, buna ihtiyacınız varsa, birden fazla tutarak Tek bir kovada "site" ve her istenen nesne yoluna bir önek ekleyerek. Aynı AWS bölgesinde EC2 ve S3 arasındaki veri aktarımı ücretsizdir, bu yüzden ek bant genişliği ücretleri gerektirmez - sadece kendi maliyetinin maliyeti. (Yorumlardan)


Güncelleme:

AWS konsol meta anahtar olarak Content-Type seçerek beri biraz karşı sezgisel olabilir sonra sadece anlaşılacağı/rtf metin/düz ve metin dahil olmak üzere birkaç seçenek ama metin/html değil ... ama "Değer" açılır listesi sadece önerilerde bulunur. Burada yarı duyarlı olan herhangi bir şey kabul edilecektir. eylemler →

  • tık yürürlükteki herhangi kutuları iletişim kutusunda,
  • tık "ayar ayrıntıları"
  • yüklemek için dosyayı seçin "dosyaları eklemek" ve check yüklemek seçin (kova)

    • tık "izinleri ayarlama" ve "kamu her şeyi yapmak" kontrol (eğer varsa)
    • tık "set meta"
    • "daha meta veri eklemek"
    • tık "Anahtar" açılır listesinde
    • , "İçerik Türü" nü seçin ve sonra "Değer" kutusuna "text/html" yazın - sunulan bir seçim değildir, ancak bu yalnızca bir ortak listesidir Türleri ve kutuya ne koyabileceğinizi sınırlamaz.
    • tık
  • +0

    HTML'de 'İçerik-type' başlığını demek istiyorsunuz "yükleme başlatmak"? Bu HTML5 ile kullanımdan kaldırılmadı mı? –

    +1

    HTML'de değil ... Nesne için bir "GET" veya "HEAD" isteği gönderdiğinde tarayıcıya gönderilecek olan gerçek HTTP başlıklarındaki Content-Type başlığı.Bu başlıklar S3'te nesne ile saklanır. Konsoldaki nesneleriniz için meta verilere göz atın ve neye atıfta bulunduğumu göreceksiniz. Konsol, dosyaları yüklediğinizde uzantıdan uygun başlığı "tahmin" ediyor ancak manuel olarak da ayarlayabilirsiniz. –

    +0

    @AlexChumbley Kabul ettiğiniz için teşekkür ederiz. İlk öneriye gittim, uzantıyı dosya adından düşürdüm ve "Content-Type" başlığını S3'te ayarladın mı? –

    İlgili konular