# How do I specify Windows file paths in nginx

I'm using the official windows version of nginx. I want to specify the windows equivalent of this configuration

location /static/ {
alias /home/user/staticfiles/;
}


How do I specify windows file paths in the alias directive? Is this even possible?

-

You can try this:

1. copy your static files into nginx/html/staticfiles
2. set into nginx.conf

location /static/ { alias /nginx/html/staticfiles/; }

-

If you try to specify an absolute path like...

location / {
alias C:\Users\SomeUser\mysite\static;
}


...then upon requesting a file from that location, you'll probably see errors in C:\nginx\logs\error.log like:

2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css


When configuring nginx on Windows, specify any paths relative to the C:\nginx directory. This works:

location / {
alias ../Users/SomeUser/mysite/static;
}


Personally, I was happy to learn this because it makes my nginx configurations a little more portable between Windows and Linux than I had expected them to be. To turn a Linux configuration file into one that works on Windows, for me it's basically just:

s|/home/myname/|../Users/Myname|

-

These answers must be out of date. Using nginx 1.3.8 absolute paths with forward slashes works. Backslashes seem to work, but should be doubled. If they aren't then some, such as a trailing \" are taken literally.

location /static/ {
# alias "C:\\foo\\bar\\...\\static\\";
alias "C:/foo/bar/.../static/";
expires 90d;
}


The quotes may not be required, but they seem like a good idea in case of embedded spaces.

One other thing I noticed is that it is important to match the url and alias path regarding ending with a trailing slash or not--a mismatch and it doesn't work.

-