談?wù)凥TML/CSS/JS代碼中的文件相對(duì)路徑

我們?cè)贖TML/CSS/JS代碼中經(jīng)常會(huì)寫(xiě)一些文件的相對(duì)路徑和絕對(duì)路徑膜眠,絕對(duì)路徑還好說(shuō)籽孙,相對(duì)路徑到底他媽的相對(duì)的誰(shuí)呢?恐怕很多人都不敢說(shuō)完全弄清楚了伐蒋。尤其是現(xiàn)在的開(kāi)發(fā)過(guò)程工三,有開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境先鱼、部署環(huán)境俭正,每個(gè)環(huán)境的相對(duì)路徑可能又有區(qū)別。今天我就全面做測(cè)試焙畔,測(cè)試到底他媽的都是相對(duì)誰(shuí)掸读。

基礎(chǔ)知識(shí)

.././宏多、/儿惫、只寫(xiě)文件名,這四種情況分別代表什么伸但?

  • ../ 代表父級(jí)目錄肾请,連寫(xiě)的話,比如../../表示往上追溯兩級(jí)目錄
  • ./ 代表當(dāng)前目錄更胖,連寫(xiě)的話無(wú)意義
  • / 代表網(wǎng)站根目錄铛铁,就是服務(wù)器www目錄
  • 只寫(xiě)文件名,跟./效果一樣

HTML文件代碼中的相對(duì)路徑

測(cè)試步驟:

在服務(wù)器建立/a/b/c/d目錄却妨。把1.html放到d里面饵逐,內(nèi)容是:<a href="../x/y/z.html">link</a>

訪問(wèn)http://localhost/a/b/c/d/1.html,右擊link管呵,看屬性梳毙,得到http://localhost/a/b/c/x/y/z.html,說(shuō)明捐下,../x/y/z.html../是基于1.html的位置向上追溯了一層账锹。

結(jié)論:HTML代碼中的相對(duì)路徑就是以本HTML文件所在目錄開(kāi)始計(jì)算,無(wú)論引入的文件是js還是css還是圖片還是其他任何類(lèi)型坷襟。

如果是在HTML文件內(nèi)書(shū)寫(xiě)“行內(nèi)js”和“行內(nèi)css”奸柬,里面的相對(duì)路徑當(dāng)然也是相對(duì)于HTML文件的,畢竟沒(méi)有別的參照物婴程。

CSS文件代碼中的相對(duì)路徑

CSS文件中寫(xiě)相對(duì)路徑的情況主要是設(shè)背景圖和引入字體文件廓奕,測(cè)試步驟:

準(zhǔn)備一個(gè)字體文件,可以隨便下載一個(gè),比如李旭科書(shū)法桌粉。

準(zhǔn)備目錄/a/b/c/d蒸绩,1.css放在a目錄,字體放在b目錄铃肯,1.html依然在d目錄患亿。

1.html文件內(nèi)容:

<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="/a/1.css">
<p class="a">李旭科書(shū)法</p>

1.css文件內(nèi)容,'./b/lxksf.ttf'表示從a目錄開(kāi)始找b目錄押逼,然后發(fā)現(xiàn)這個(gè)ttf文件:

@font-face {
    font-family: 'a';
    src: url('../b/lxksf.ttf');
}
.a {
    font-family: 'a';
}

還是訪問(wèn)http://localhost/a/b/c/d/1.html步藕,可以看到,p元素成功應(yīng)用了字體挑格。

image.png

結(jié)論:CSS文件內(nèi)如果寫(xiě)相對(duì)路徑咙冗,是基于CSS文件本身的,跟誰(shuí)引入了這個(gè)CSS無(wú)關(guān)漂彤。

JS文件代碼中的相對(duì)路徑

測(cè)試思路是雾消,讓1.html ajax 2.html。

還是構(gòu)建/a/b/c/d/目錄显歧,1.html放到d里仪或,2.html放到c里,1.js放到a里士骤。

1.html內(nèi)容:

<script src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
<script src="../../../1.js"></script>

2.html內(nèi)容:

<strong>測(cè)試成功</strong>

1.js內(nèi)容:

$.get('../2.html', function(data) {
    console.log(data);
});

然后還是訪問(wèn)http://localhost/a/b/c/d/1.html,在控制臺(tái)可以看到蕾域,成功了:

image.png

結(jié)論:JS文件內(nèi)的相對(duì)路徑拷肌,也是從HTML文件所在位置開(kāi)始計(jì)算的,跟js文件在哪無(wú)關(guān)旨巷。

總結(jié)

  • HTML文件和JS文件中出現(xiàn)的相對(duì)路徑巨缘,都是從HTML文件所在位置開(kāi)始計(jì)算的。
  • CSS文件中出現(xiàn)的相對(duì)路徑采呐,是從CSS文件所在位置開(kāi)始計(jì)算的若锁。

怎么理解這種設(shè)定?

當(dāng)初創(chuàng)世者怎么考慮的斧吐,咱們不去探討又固,只是感受一下這種設(shè)定的好處:

JS因?yàn)橛辛诉@種設(shè)定,就可以實(shí)現(xiàn)瀏覽器的同源限制煤率。
JS文件是為HTML服務(wù)的仰冠,以HTML為核心更科學(xué),而且除了ajax場(chǎng)合蝶糯,JS文件里很少寫(xiě)相對(duì)路徑洋只。
而CSS文件,它大多是資源引用,比如引用img和字庫(kù)和svg等识虚,這些文件是為CSS服務(wù)的肢扯,它們跟css配合形成了一個(gè)整體,所以担锤,當(dāng)然應(yīng)該相對(duì)于CSS文件所在位置進(jìn)行計(jì)算鹃彻。假如相對(duì)于HTML文件位置做計(jì)算,那就真亂套了妻献。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛛株,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子育拨,更是在濱河造成了極大的恐慌谨履,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熬丧,死亡現(xiàn)場(chǎng)離奇詭異笋粟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)析蝴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)害捕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人闷畸,你說(shuō)我怎么就攤上這事尝盼。” “怎么了佑菩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵盾沫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我殿漠,道長(zhǎng)赴精,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任绞幌,我火速辦了婚禮蕾哟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘莲蜘。我一直安慰自己谭确,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布菇夸。 她就那樣靜靜地躺著琼富,像睡著了一般。 火紅的嫁衣襯著肌膚如雪庄新。 梳的紋絲不亂的頭發(fā)上鞠眉,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天薯鼠,我揣著相機(jī)與錄音,去河邊找鬼械蹋。 笑死出皇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哗戈。 我是一名探鬼主播郊艘,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼唯咬!你這毒婦竟也來(lái)了纱注?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胆胰,失蹤者是張志新(化名)和其女友劉穎狞贱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蜀涨,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞎嬉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厚柳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氧枣。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖别垮,靈堂內(nèi)的尸體忽然破棺而出便监,到底是詐尸還是另有隱情,我是刑警寧澤宰闰,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布茬贵,位于F島的核電站,受9級(jí)特大地震影響移袍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜老充,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一葡盗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啡浊,春花似錦觅够、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至廷粒,卻和暖如春窘拯,著一層夾襖步出監(jiān)牢的瞬間红且,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工涤姊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暇番,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓思喊,卻偏偏與公主長(zhǎng)得像壁酬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恨课,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 談?wù)凥TML/CSS/JS代碼中的文件相對(duì)路徑 轉(zhuǎn)載 作者microkof(http://www.jianshu....
    彥佐閱讀 1,260評(píng)論 0 2
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案舆乔? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評(píng)論 1 92
  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺(jué)受益匪淺,特此分享以備自己日后查看剂公,也希望更多的人看到...
    小小字符閱讀 8,140評(píng)論 7 35
  • 清晨五點(diǎn)希俩,巴厘島的第一個(gè)早晨,當(dāng)雨落青石诬留、輕敲黛瓦的聲音驟然落入耳中斜纪,在這異國(guó)他鄉(xiāng)的清晨,在這意想不到的時(shí)刻...
    筱泓閱讀 229評(píng)論 1 2
  • “有時(shí)候文兑,操作效率的降低并不是因?yàn)楣δ茉O(shè)計(jì)得不夠好盒刚,或者提示和建議處理得不夠好,而是由于強(qiáng)行地塞進(jìn)了一些用戶不想要...
    郵差Vicky閱讀 1,078評(píng)論 0 0