Làm cách nào để chỉ định đường dẫn tệp Windows trong nginx


22

Tôi đang sử dụng phiên bản windows chính thức của nginx. Tôi muốn chỉ định các cửa sổ tương đương với cấu hình này

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

Làm cách nào để chỉ định đường dẫn tệp windows trong chỉ thị bí danh? Điều này thậm chí có thể?

Câu trả lời:


17

Những câu trả lời phải hết hạn. Sử dụng nginx 1.3.8 đường dẫn tuyệt đối với dấu gạch chéo phía trước hoạt động. Dấu gạch chéo ngược dường như hoạt động, nhưng nên được nhân đôi. Nếu họ không thì một số, chẳng hạn như một dấu vết \"được thực hiện theo nghĩa đen.

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

Các trích dẫn có thể không được yêu cầu, nhưng chúng có vẻ như là một ý tưởng tốt trong trường hợp không gian nhúng.

Một điều khác tôi nhận thấy là điều quan trọng là phải khớp đường dẫn url và bí danh liên quan đến việc kết thúc bằng dấu gạch chéo hay không - một sự không phù hợp và nó không hoạt động.


Vẫn hoạt động trong nginx 1.8.1
Daniel

Lời khuyên của bạn để sử dụng dấu ngoặc kép để xử lý khoảng trắng đã giúp tôi rất nhiều!
Đánh bại

5

Nếu bạn cố gắng chỉ định một đường dẫn tuyệt đối như ...

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

... sau đó khi yêu cầu một tệp từ vị trí đó, có thể bạn sẽ thấy lỗi trong C: \ nginx \ log \ error.log như:

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

Khi định cấu hình nginx trên Windows, chỉ định bất kỳ đường dẫn nào liên quan đến thư mục C: \ nginx. Những công việc này:

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

Cá nhân, tôi rất vui khi biết điều này bởi vì nó làm cho cấu hình nginx của tôi dễ di chuyển hơn một chút giữa Windows và Linux so với tôi dự kiến. Để biến một tệp cấu hình Linux thành một tệp hoạt động trên Windows, về cơ bản, đó chỉ là:

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

Điều này hoạt động với nginx 1.9.10, Cảm ơn!
NenadP

2

Bạn có thể thử điều này:

  1. sao chép các tệp tĩnh của bạn vào nginx / html / staticfiles
  2. thiết lập vào nginx.conf

    vị trí / tĩnh / {bí danh / nginx / html / staticfiles /; }


1

có vẻ như bí danh hoàn toàn không hoạt động cho hệ thống cửa sổ của tôi. Tôi đã cố gắng gõ

alias "c:"

nhưng ngay cả điều này không hoạt động. Và tôi không thể tìm cách xuất vị trí sau khi tệp cấu hình được tải lại bởi nginx. Vì vậy, đơn giản là không sử dụng bí danh trong windows cho nginx.


Đối với nginx 1.5.6, thiết lập sau hoạt động: alias ../../cde/folder;giả sử nginx.exe của bạn định vị tại d: / abc / nginx, nhưng thư mục bạn cố gắng đặt bí danh nằm ở thư mục d: / cde /. Một số nguồn đề cập rằng nginx đã được mã hóa cứng với đường dẫn /cygdrive/c/nginx/, trong trường hợp này alias /cygdrive/d/path/nên được sử dụng, nhưng điều này không hiệu quả với tôi. Cũng đáng được đề cập rằng không nên bỏ qua dấu gạch chéo phía trước ở cuối đường dẫn bí danh.
TonyTony

Tôi đang cố gắng chuyển nginx.conf từ linux sang win10. Các tệp thực thi nginx nằm trong C: \ nginx, trong khi các tệp được cung cấp nằm trên D: / bellaria_web / haus. Bối cảnh 'root D: / bellaria_web / haus /;' dường như không hoạt động. Ai đó có thể giải thích những gì sai?
AAG

0

Đối với Nginx trên windows, bạn phải sử dụng phương pháp này:

vị trí / foo {

root C: // pathtoyourfile / thư mục1 / thư mục2;

} trong đó foo là một thư mục thực tế trong thư mục2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.