JavaScript 中的“ / ”:路徑、資源與目錄、nginx配置、請求、轉義全面解析
理解 JavaScript 中的“ / ”:路徑、資源與目錄、nginx配置、請求、轉義的那些事
Web 開發(fā)中你一定見過 / —— 但它的用法可不僅僅是「斜杠」。這篇文章將全面梳理 / 在 JavaScript 和前端開發(fā)中的多種應用和語義,從文件路徑到 API 請求,從瀏覽器資源引用到服務器配置,甚至涉及到轉義、nginx配置和正則表達式。

一、路徑中 / 的含義
1、 / 所扮演的角色
在瀏覽器、Node、Vue CLI 中,/ 都表示一種層級關系,常用來分隔目錄結構或路由片段:
- /src/components/Button.vue → 組件文件路徑
- /api/user/info → RESTful API 路徑
- /about → 前端路由路徑
2、根據(jù) URL 中的 / 判斷是目錄還是資源
瀏覽器會自動根據(jù) URL 最后是否包含 / 來區(qū)分目錄或文件資源,關鍵就在于是不是以 / 結尾,如果是,就代表最后一個路徑名是目錄名(文件夾名稱),如果不是以 / 結尾,就是文件資源。
| URL | 推斷 |
|---|---|
/about/ | 目錄 |
/about | 文件資源(如 html、json) |
/images/logo.png | 文件資源 |
/about/ → 被認為是目錄,會嘗試尋找 /about/index.html(vue中是尋找 /about/index.vue)
3、相對路徑 vs 絕對路徑
一個表格講清楚:
| 路徑形式 | 示例 | 含義說明 |
|---|---|---|
| 絕對路徑 | /assets/logo.png | 從網(wǎng)站根目錄出發(fā)尋找資源 |
| 相對路徑 | ./img/logo.png | 當前文件夾下尋找資源 |
| 相對路徑 | ../img/logo.png | 當前文件夾的上一級目錄下尋找資源 |
vue 項目使用絕對路徑的時候,/ 一般是從 public 文件夾開始往下,無法通過絕對路徑訪問src文件夾中的資源(一般用@,但是要配置),因為src下的資源在打包后會重新分配結構,使用絕對路徑在生產(chǎn)環(huán)境就會失效,所以毫無意義。
4、相對路徑中的 . 與 ..
.:當前路徑(Current Directory)..:上一級目錄(Parent Directory)
<!-- 當前文件在 /pages/about/index.html --> <img src="../../images/banner.jpg"> <!-- 實際路徑為 /images/banner.jpg --> <!-- pages與iamges在同一目錄下 -->
二、Vue中 / 的特殊作用
1、Vue Router 中的 /
在Vue Router中,/ 代表根路由,也就是說實際路徑為:協(xié)議+域名(ip+端口)+ baseUrl + 路由。最后的路由部分就是Vue Router配置的內(nèi)容,根路由就是路由為 / 。
此外/about/ 與 /about 默認被視為等價(除非手動設置)
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About },
]
2、Vue 項目構建時的 base 配置
這個其實是要根據(jù)生產(chǎn)環(huán)境下的路由決定的,生產(chǎn)環(huán)境下的路由是什么,這里base就設置什么,以此來保證打包部署后的資源能被正確訪問。
// vite.config.js
export default defineConfig({
base: '/my-app/', // 所有資源前綴會帶上這個路徑
})
三、SEO 對 / 的敏感性
搜索引擎(如 Google、Baidu)會把下面兩個路徑視為兩個不同的頁面:
- /blog
- /blog/
所以需要路由統(tǒng)一末尾加 /,或者通過 Nginx 重定向處理一致性,避免 /about 和 /about.html 指向同一頁面而無重定向,容易造成 SEO 評分下降。
四、Nginx 中/的配置技巧
proxy_pass 后的 / 會影響轉發(fā)路徑拼接方式,建議保持一致,否則可能造成路徑錯亂,此時 /api/user 實際會被轉發(fā)至 http://localhost:3000/user。
個人建議在nginx中永遠在路徑和路由后加上 / ,基本不會錯。
location /api/ {
proxy_pass http://localhost:3000/;
}
五、fetch 和 API 請求中的 / 影響
fetch('/api/user') // 相對根路徑
fetch('./api/user') // 相對當前路徑(可能出錯)
fetch('https://example.com/api/user') // 絕對路徑
Vue 中推薦使用 axios 統(tǒng)一配置:
const instance = axios.create({
baseURL: '/api/',
})
六、正則表達式和字符串中的 / 與轉義
在 JavaScript 正則表達式中,/ 是定界符,若路徑中包含 /,需使用 \/ 進行轉義。:
const reg = /\/api\/user/; // 匹配 "/api/user"
字符串中的 / 則不需要轉義
const url = "https://example.com/api/user";
七、結語
一個小小的 / 有這么多細節(jié)可以深挖, 是不是很有意思?如果你是前端開發(fā)者,理解 / 的這些細節(jié)能讓你在寫路徑、調(diào)試接口、配置服務器、優(yōu)化 SEO 時更游刃有余。
到此這篇關于JavaScript 中的“ / ”:路徑、資源與目錄、nginx配置、請求、轉義全面解析的文章就介紹到這了,更多相關js 路徑 /內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript中getSelection獲取選中內(nèi)容實現(xiàn)示例(vue項目)
在JavaScript中獲取選中內(nèi)容通常是指獲取用戶在網(wǎng)頁上選中的文本或者其他可選擇的元素,這篇文章主要介紹了JavaScript中getSelection獲取選中內(nèi)容實現(xiàn)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-08-08
在table中插入多行的js代碼(與insertAdjacentHTML相似的功能)
在table中插入多行,能使用與insertAdjacentHTML相似的功能2010-06-06
詳解JavaScript如何實現(xiàn)異步并發(fā)任務控制器
實現(xiàn)一個控制并發(fā)數(shù)的任務隊列?、實現(xiàn)一個異步并發(fā)任務控制器,這已經(jīng)是非常經(jīng)典的手寫題目了,因為其中涉及?異步?和?并發(fā)?的內(nèi)容,所以本文就來講講到底如何實現(xiàn)呢2023-05-05
JS使用window.requestAnimationFrame()對列表切片進行渲染
這篇文章主要為大家介紹了JS使用requestAnimationFrame對列表切片進行渲染,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
Bootstrap開發(fā)實戰(zhàn)之響應式輪播圖
這篇文章主要為大家詳細介紹了Bootstrap開發(fā)實戰(zhàn)之響應式輪播圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-06-06

