Dalam aplikasi saya, saya ingin lokasi "/" mengembalikan file index.html statis, saya ingin "/ statis" untuk menyajikan file statis dari folder dan saya ingin semua permintaan lain untuk mengembalikan 404 TIDAK DITEMUKAN. Pada titik selanjutnya saya akan mengarahkan semua permintaan lain ke server WSGI.
Ini adalah konfigurasi saya saat ini:
# Dev server.
server {
listen 1337;
charset UTF-8;
location / {
rewrite ^ static/index_debug.html break;
}
location /static {
alias /home/tomas/projects/streamcore/static;
}
}
Folder statis berfungsi dengan baik, tetapi "/" mengembalikan 404 TIDAK DITEMUKAN. Saya juga sudah mencoba:
alias /home/tomas/projects/streamcore/static/index_debug.html;
Di blok lokasi, tetapi itu mengembalikan 500 INTERNAL SERVER ERROR. Sepertinya alias
tidak suka file tunggal. Selain itu saya sudah mencoba:
try_files static/index_debug.html;
Tapi itu menghentikan server dari memulai dengan kesalahan "jumlah argumen yang tidak valid di direct_files directive". Rupanya try_files
sebenarnya mengharuskan Anda untuk mencoba lebih dari satu file, yang bukan perilaku yang saya cari.
Jadi pertanyaan saya adalah: Bagaimana saya mengonfigurasi blok lokasi untuk selalu mengembalikan file statis?
EDIT: Saya sudah melihat dari jawaban lain yang alias
seharusnya menerima satu file sebagai argumen, jadi saya mencoba:
location = / {
alias /home/tomas/projects/streamcore/static/index_debug.html;
}
Tapi saya masih hanya mendapat 500 KESALAHAN SERVER INTERNAL. Log kesalahan untuk permintaan "/" mengatakan:
[alert] 28112 # 0: * 7 "/home/tomas/projects/streamcore/static/index_debug.htmlindex.html" bukan direktori
Mengapa ia mencoba membuka "index_debug.htmlindex.html"? Saya tidak menggunakan index
arahan di mana pun.
location =/
saya mendapatkan 404 TIDAK DITEMUKAN, dengan location /
saya mendapatkan 500 KESALAHAN SERVER INTERNAL.
location / { return 404; }
location = / {Index /home/tomas/projects/streamcore/static/index_debug.html;}
try_files static/index_debug.html static/index_debug.html;