私はnginxの公式Windowsバージョンを使用しています。この構成に相当するウィンドウを指定したい
location /static/ {
alias /home/user/staticfiles/;
}
エイリアスディレクティブでWindowsファイルパスを指定するにはどうすればよいですか?これは可能ですか?
これらの回答は古くなっているはずです。スラッシュを含むnginx 1.3.8絶対パスを使用すると機能します。バックスラッシュは機能するようですが、2倍にする必要があります。そうでない場合は、末尾の\"
などの一部が文字どおりに使用されます。
location /static/ {
# alias "C:\\foo\\bar\\...\\static\\";
alias "C:/foo/bar/.../static/";
expires 90d;
}
引用符は必須ではないかもしれませんが、埋め込みスペースの場合には良い考えのようです。
もう1つ私が気付いたのは、末尾のスラッシュで終了するかどうかについてURLとエイリアスパスを一致させることが重要であるということです。これは不一致であり、機能しません。
次のような絶対パスを指定しようとすると...
location / {
alias C:\Users\SomeUser\mysite\static;
}
...その場所からファイルをリクエストすると、おそらくC:\ nginx\logs\error.logに次のようなエラーが表示されます:
2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css
Windowsでnginxを設定する場合、C:\ nginxディレクトリからの相対パスを指定します。これは機能します:
location / {
alias ../Users/SomeUser/mysite/static;
}
個人的には、nginx構成がWindowsとLinuxの間で思ったよりも移植性が高くなっているので、これを学んでうれしかったです。 Linux構成ファイルをWindowsで動作するものに変換するには、基本的には次のようにします。
s|/home/myname/|../Users/Myname|
あなたはこれを試すことができます:
nginx.confに設定
場所/ static/{エイリアス/ nginx/html/staticfiles /; }
私のWindowsシステムではエイリアスがまったく機能しないようです。タイプしてみた
alias "c:"
しかし、これでもうまくいきません。また、nginxによって構成ファイルがリロードされた後、場所を出力する方法が見つかりません。したがって、単にnginxのWindowsでエイリアスを使用しないでください。
WindowsのNginxの場合、このメソッドを使用する必要があります。
場所/ foo {
ルートC:// pathtoyourfile/folder1/folder2;
ここで、fooはfolder2内の実際のフォルダーです。