對于我的其他 Angular 應用程式,我正在使用以下配置,并且一切似乎都運行良好。
location / {
try_files $uri$args $uri$args/ /index.html;
}
現在我正在作業的檔案夾在 dist 檔案夾中嵌套了檔案夾。
檔案夾結構類似于:
dist \
-- assets
-- folder1
-- folder2
-- folder3
-- folder4
-- folder5
index.html
index.html
并且內部 index.html 使用查詢引數呼叫,并且 url 將類似于 - <ip>/folder1/folder2/index.html?a=1&b=2&c=3
。但這是在根位置回傳后備 index.html。后來,我像這樣更改了上面的位置塊,它開始正常作業。
location / {
try_files $uri $uri/ /index.html;
}
所以我不清楚為什么第一個位置塊不起作用。而且我在檔案中找不到任何內容-try_files
uj5u.com熱心網友回復:
除最后一個引數外,try_files
陳述句的所有引數都在本地檔案系統中查找檔案名。
因此,給定 URI /foo/bar
,該術語$uri$args
將在 處搜索本地檔案/path/to/root/foo/bar
,如果它不存在,將轉到下一個術語或陳述句末尾的默認子句。
在上述情況下,$args
為空。但是,給定 URI /foo/bar?baz
,該術語$uri$args
將搜索位于 的本地檔案/path/to/root/foo/barbaz
。
我不知道為什么有人會在宣告中使用$uri$args
或$uri$args/
作為檔案條款try_files
,但很可能有一個合法的用例。
try_files
陳述句的最后一個引數是特殊的。它可以是狀態碼(例如=404
)、要分支到的命名位置或 URI。
對于 URI,Nginx 將在內部重定向到該 URI。一個典型的例子可能是/index.php$isargs$args
——在這種情況下,附加引數是完全合法的$args
,因為我們正在創建一個新的 URI 并保留原始引數字串。
有關詳細資訊,請參閱此檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/472764.html