1. 程式人生 > >CSS、JS中的相對路徑引用

CSS、JS中的相對路徑引用

初學者由於對一些比較基本的知識的把握不是很牢,所以在開發或者設計的時候,往往很容易出現一些錯誤或者異常現象而找不到出錯的根源。記得自己剛剛java入門的時候,會出現一些很“離奇”的現象,然後一遍一遍檢視自己的程式碼,一步一步的進行除錯(當然那個時候的除錯方式也只是從初學這的角度上而言的,大多是比較粗略的手段),還是發現不了哪裡出了問題,這直接打擊學習的積極性。甚至有時候,照著書本或者教學視訊敲的例項程式碼也不能正常跑起來,不知道大家有沒有這種悲催的感覺。

  比如說,大家在html中通常會匯入一些外部的css、js檔案,而其中一個比較容易被忽視的問題就是路徑問題,有時候,我們在css、js中都有通過路徑來引入一張圖片的需求,當我們採用相對路徑的時候,在css和js中引用圖片的相對路徑的基準是不一樣的。在css中出現的相對路徑,是以css檔案所在路徑為基準的,而js中的路徑則是以匯入此js的網頁檔案所在的位置為基準的。

  為了很好的說明這個問題,我們寫一個簡單的切換圖片的js特效,剛開始的時候,我們讓html有一副預設的背景圖,通過css來設計,而當用戶單擊“切換背景圖”按鈕時,通過javascript程式碼來控制背景圖的變更,效果如下:

圖一:更改背景圖之前的效果圖

圖二:更改背景圖之後的效果圖

我們的檔案結構是這樣的:

/index.html

/js/chbk.js

/css/style.css

/images/bk1.jpgbk2.jpg

1. style.css程式碼

@charset "utf-8";
/* CSS Document */body{background-color:#ccc
;}#content{background:url(../images/bk1.jpg) no-repeat;width:200px;height:200px;margin:auto;}#in{margin:auto;text-align:center;}

 其中,url(../images/bk.jpg)路徑是相對於style.css的。

2.chbk.js程式碼

// JavaScript Documentfunction chbk(){
document.getElementById('content').style.backgroundImage='url(images/bk2.jpg)';
}

其中,

url(images/bk2.jpg)路徑是相對於index.html的,而不是chbk.js的url(../images/bk.jpg)

3.index.html程式碼

複製程式碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>引入Html中的css、js的路徑問題</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script src="js/chbk.js" type="text/javascript"></script>
</head>

<body>
<div id="content">
</div>
<div id="in">
<input class="in" type="button" value="單擊我更改背景" onclick="chbk()" />
</div>

</body>
</html>
複製程式碼

以上說明,對於js和cs中的路徑引用,如果採用相對路徑的話,其基準路徑是有區別的。

通常情況下,js不僅僅是一個html在於,特別對於動態網頁而言,js中的路徑引用應該採用絕對路徑,可以通過定義一個全域性變數如path來活動專案的真實路徑(像jsp中就可以用request.getSession().getServletContext().getRealPath("/")),然後在每個路徑上加上path(path+你的路徑)從而取出路徑錯誤的問題。

總結:在css中出現的相對路徑,是以css檔案所在路徑為基準的,而js中的路徑則是以匯入此js的網頁檔案所在的位置為基準的。

轉載自:http://www.cnblogs.com/xuxiace/archive/2012/03/06/2381874.html

相關推薦

CSSJS相對路徑引用

初學者由於對一些比較基本的知識的把握不是很牢,所以在開發或者設計的時候,往往很容易出現一些錯誤或者異常現象而找不到出錯的根源。記得自己剛剛java入門的時候,會出現一些很“離奇”的現象,然後一遍一遍檢視自己的程式碼,一步一步的進行除錯(當然那個時候的除錯方式也只是從初學這

SpringBoot頁面跳轉訪問cssjs等靜態資源引用無效解決(六)

目錄 一、頁面跳轉 二、情況說明 三、 問題解決方案 1、 引入thymeleaf的依賴包 2、 專案路徑 注意 (1) 頁面引用外部靜態資源的方式 (2) 核心解決方案 一、頁面跳轉 如果你還沒有實現頁面跳轉,推薦閱讀:SpringBoot跳轉渲染頁

CSS及HTMLjs的資源路徑問題

stat 文件中 bsp ng- 層級 png 目的 指令 php 路徑 分為相對路徑和絕對路徑 一、相對路徑。 相對於文件本身的路徑。 用 ./ 表示同一文件夾下的兄弟文件。 用../ 表示所處文件夾的父文件夾中的文件。 二、絕對路徑。 本機絕對路徑是 例如 E:\ph

nginx 解決cssjs請求路徑無法加載問題

proxy dem jfinal pan oot usr bmp 兩個 cli location / { proxy_pass http://jfinaldemo; root /usr/share/nginx/html;

Django簡單添加HTMLcssjs等文件

htm djang .py 項目 移動 資源 默認 alt templates 首先申明下自己的環境, python版本3.65 Django版本1.11.15 創建默認Django項目後 首先說下添加Html 在urls.py文件中添加如圖代碼,照抄也

Webpack css import 使用 alias 相對路徑

你需要提前知道的 在用 webpack 處理打包時,可以將某一個目錄配置一個別名,程式碼中可以使用與別名的相對路徑引用資源。 alias 通道: https://doc.webpack-china.org/configuration/resolve/#resolve-al

引用外部.css或.js檔案的路徑問題

jsp或html頁面引用外部.css或.js檔案時,注意路勁問題,如果設定不當,會引用不到這些外部的檔案 假設使用下面的目錄結構: -webapp  |-MyProject  目錄   |--WebContent 目錄   |---scripts 目錄    ---dt

Jenkins持續整合——巧妙解決無法開啟引用CSSJS的HTML頁面問題

問題背景在部署jenkins持續整合的過程中經常會用到HTML Publisher Plugin外掛來顯示測試報告。為了測試報告樣式的美觀以及易讀,測試報告中經常會搭配CSS和JS實現自定義的樣式或動畫效果。         Jenkins中在訪問有自定義樣式或動畫效果的測試

前端框架Vue(13)——vue 如何對公共css js 方法進行單檔案統一管理,全域性呼叫

1、前言 最近,為公司開發交付的一個後臺管理系統專案,我使用了 Vue 框架進行開發實踐。 模組化、元件化、工程化的開發體驗非常好。良好的 api,優雅的設計,對於工程師非常友好。 但是由於模組比較多,我對於每個模組分配了不同的

Vue.js的圖片引用路徑

當我們在Vue.js專案中引用圖片時,關於圖片路徑有以下幾種情形: 使用一 我們在data裡面定義好圖片路徑 /*錯誤寫法*/ imgUrl:'../assets/logo.png' 然後,在template模板裡面 /*錯誤寫法*/ &l

IOS開發(7)WKWebView載入本地HTMLCSSJS檔案JS(解決html內訪問其他資源路徑問題)

這段時間開發IOS應用,自己本身是搞java web 和 android,搞ios應用後面還有好多坑要跳,所以學習一點就整理一點筆記。不敢保證內容都是對的,但至少,我嘗試過分析整理的。 UIWebVIew和WKWebView都是ios提供的web控制元件。但是

JavaScript與CSS相對路徑引用的差異

JS跟CSS相對路徑引用的差異在於他們的參考點不一樣,下面舉個例子說明一下。 檔案目錄如下 |—— css | |__ myStyle.css |—— script | |__ myScript.js |—— images | |__ myIma

【2017-05-21】WebForm跨頁面傳值取值C#服務端跳轉頁面 Button的OnClientClick屬性JsgetAttribute和超鏈接點擊彈出警示框。

代碼 height delet update size 內存 客戶 bar win 一、跨頁面傳值和取值: 1、QueryString - url傳值,地址傳值 優缺點:不占用服務器內存;保密性差,傳遞長度有限。 通過跳轉頁面路徑進行傳值,方式: href="地址?ke

Joomla T3模板啟用CSSJS優化

ont 也會 啟用 如果 sset .cn 生成 soft -1 如何優化生成後的文件 當啟用了優化選項,CSS和JS優化文件將在一個頁面第一次被加載時自動生成。如果CSS或JS有改動,新生成的優化文件也會自動生成。 生成優化文件路徑: XXX/t3-assets

JS基礎--函數與BOMDOM操作JS的事件以及內置對象

對話框 回車 == 問題 tde tle ets fixed 訪問 前 言 絮叨絮叨 這裏是JS基礎知識集中講解的第三篇,也是最後一篇,三篇JS的基礎,大多是知識的羅列,並沒有涉及更難得東西,幹貨滿滿!看完這一篇後,相信許多正在像我一樣正處於初

javascript創建cssjs,onload觸發callback兼容主流瀏覽器的實現

question 禁止 rules 跨域問題 onload targe 結合 defined finally http://www.fantxi.com/blog/archives/load-css-js-callback/ 由於需要寫個函數,既可以加載css,又可

Spring-Boot整合freemarker引入靜態資源cssjs等(轉)

mark pan 創建 line path main 實現 content -m 一、概述springboot 默認靜態資源訪問的路徑為:/static 或 /public 或 /resources 或 /META-INF/resources 這樣的地址都必須定義在src/

使用gulp自動化打包合並前端靜態資源(CSSJS文件壓縮添加版本號)

開發 替換 2.4 所有 vsu scom lena pfile sss 現在正在做的項目更新叠代比較頻繁,會經常對前端代碼打包部署,手動整合代碼文件很麻煩並且浪費時間,所以決定使用gulp來代替手工完成這項工作。 前端靜態資源在發版更新時會面臨客戶端瀏覽器緩存的問題(可參

復習HTMLCSSJS練習題

bsp width type nbsp alt 打勾 text image 習題 表格復選框全選 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"&g

jsp 文件無法加載 cssjs 的問題

完全匹配 resource jsp sources 匹配 訪問 ppi pat blog 今天遇到一個問題是,在 jsp 裏面引入 css、js,請求的狀態是 200,但 css、js 的內容卻是空的。 這是因為 servlet 有個 url-pattern,將 css