Jawaban:
Jawaban ini harus kedaluwarsa. Menggunakan nginx 1.3.8 jalur absolut dengan garis miring maju berfungsi. Backslash tampaknya bekerja, tetapi harus digandakan. Jika tidak maka beberapa, seperti trailing \"
diambil secara harfiah.
location /static/ {
# alias "C:\\foo\\bar\\...\\static\\";
alias "C:/foo/bar/.../static/";
expires 90d;
}
Kutipan mungkin tidak diperlukan, tetapi mereka sepertinya ide yang bagus untuk ruang yang tersemat.
Satu hal lain yang saya perhatikan adalah penting untuk mencocokkan url dan alias path tentang diakhiri dengan garis miring atau tidak - ketidakcocokan dan tidak berhasil.
Jika Anda mencoba menentukan jalur absolut seperti ...
location / {
alias C:\Users\SomeUser\mysite\static;
}
... lalu setelah meminta file dari lokasi itu, Anda mungkin akan melihat kesalahan di C: \ nginx \ logs \ error.log seperti:
2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css
Saat mengkonfigurasi nginx di Windows, tentukan setiap jalur relatif ke direktori C: \ nginx. Ini bekerja:
location / {
alias ../Users/SomeUser/mysite/static;
}
Secara pribadi, saya senang mempelajari ini karena membuat konfigurasi nginx saya sedikit lebih portabel antara Windows dan Linux daripada yang saya harapkan. Untuk mengubah file konfigurasi Linux menjadi yang berfungsi pada Windows, bagi saya itu pada dasarnya hanya:
s|/home/myname/|../Users/Myname|
Anda dapat mencoba ini:
atur menjadi nginx.conf
lokasi / static / {alias / nginx / html / staticfiles /; }
Sepertinya alias tidak berfungsi sama sekali untuk sistem windows saya. Saya mencoba mengetik
alias "c:"
tetapi bahkan ini tidak berhasil. Dan saya tidak dapat menemukan cara untuk menampilkan lokasi setelah file konfigurasi dimuat ulang oleh nginx. Jadi sederhananya jangan gunakan alias di windows untuk nginx.
alias ../../cde/folder;
:, anggap lokasi nginx.exe Anda di d: / abc / nginx, tetapi folder yang Anda coba alias letakkan di d: / cde / folder. Beberapa sumber menyebutkan bahwa nginx telah dikodekan dengan path /cygdrive/c/nginx/
, dalam hal ini alias /cygdrive/d/path/
harus digunakan, tetapi ini tidak bekerja untuk saya. Juga layak untuk menyebutkan bahwa garis miring di akhir jalur alias tidak boleh diabaikan.
Untuk Nginx di windows Anda harus menggunakan metode ini:
lokasi / foo {
root C: // pathtoyourfile / folder1 / folder2;
} di mana foo adalah folder aktual di dalam folder2