在本地開發中,我正試圖從一個公共目錄中提供靜態內容。我的圖片位于 app/public/images,而我的根目錄是 app/public。我的圖片在/d/my_app_name/images/<image>.png中查詢。我正在匹配/d/my_app_name/images的位置,但試圖找出如何提取檔案名并讓nginx從影像目錄中查找適當的檔案名?我目前的設定是:
root /app/public;
index index.php。
位置 /d/my_app_name/images/ {
root /images/; # <--- 我猜這個規則是讓nginx查找一個與整個相對路徑相匹配的檔案,而不是僅僅查找檔案名
}
更新 我能夠讓它匹配并只從似乎是正確的目錄中查找檔案名,但我仍然得到一個未找到的錯誤。我假設錯誤中顯示的相對路徑是相對于根的,在這種情況下,該檔案/目錄應該存在。
root /app/public;
index index.php。
位置 /d/my_app_name/images/ {
alias /images/;
}
當我進入localhost:8380/d/my_app_name/images/my_image.png時,它在app/public/images目錄下查找正確的png檔案,但它仍然說它不存在。
[error] 8#0: *1 open() "/images/my_image.png" failed (2: No such file or directory), client: 192.168.176.1, server: devbox, request: "GET /d/my_app_name/images/my_image.png HTTP/1.1", host: "localhost:8380"/code>
圖片保存在/app/public/images目錄下。
uj5u.com熱心網友回復:
我認為你的位置和根路徑是顛倒的。
我可以建議你改變你的位置塊如下:
location /images/ {
root /d/my_app_name/images/; # 覆寫全域根目錄到你的圖片所在的特定路徑。
}
更多的配置例子可以在官方檔案中找到。
uj5u.com熱心網友回復:
你可以使用一個簡單的別名,告訴Nginx搜索另一個路徑中的所有檔案。Root只有在你的位置只是圖片,并且在檔案中實際使用時才會起作用。https://nginx.org/en/docs/http/ngx_http_core_module.html#alias
root /app/public; #Use full path, ex: /home/username/repo/app/public/.
index index.php。
位置 /d/my_app_name/images/ {
別名 /app/public/images/; #使用完整路徑,例如:/home/username/repo/app/public/。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/316516.html
標籤:
