2 回答

TA貢獻55條經驗 獲得超117個贊
最直接的區別,很容易注意到,一個是file協議,另一個是http協議。file協議更多的是將該請求視為一個本地資源訪問請求,和你使用資源管理器打開是一樣的,是純粹的請求本地文件。而http請求方式則是通過假架設一個web服務器,解析http協議的請求然后向瀏覽器返回資源信息。我們所開發的html文件最后必定是會以網頁的形式部署在服務器上,通過http協議訪問,所以我們開發中也盡可能模擬線上環境,架設本地服務器,來避免file協議與http協議實現過程中的某些差異性,如某些API的差異、跨域請求的差異等。舉個最容易驗證的例子:在頁面引入一張絕對路徑的圖片,即'/image/example.png',然后分別通過這兩種方式打開頁面,file協議會將資源請求到根路徑,而http協議雖然也會請求到根路徑,但是是相對本地架設的服務器的根路徑,一般也就是項目文件夾的路徑。

TA貢獻12條經驗 獲得超15個贊
盡量簡單解釋,希望能看懂:
是否需要用本地服務器打開 html 分幾種情況:
html 中是否是純靜態模板頁
純靜態模板頁指頁面內沒有“請求服務器”獲取數據,展示的是為了布局占位臨時寫的“假”數據。比如,“姓名”、“年齡”,后端數據還沒完成,前端先寫模板頁,隨便寫“姓名: 張三”、“年齡:18”,先把頁面布局和樣式完成。這個階段不需要開啟本地服務器
html?中引用的靜態資源是否需要構建工具打包編譯
比如 js 使用了 ES6 新特性、css 使用了 less 編寫等,這時可能需要使用 Webpack 等工具進行編譯。這時,一般需要啟動一個本地 node.js 服務去執行編譯和預覽
?開發中是否用到“實時刷新,同步預覽”
如果開發中修改文件不想每次都點擊刷新或按 F5,保存時自動刷新,可以借助一些工具,比如?livereload、browserSync 等。用這些工具,需要啟動一個本地服務
開發中是否用到多終端調試
如果開發的靜態頁面想在某品牌手機真機上看顯示效果,調試兼容性問題,除了最笨的把頁面和靜態資源發送到手機上,還以可以起一個本地服務,電腦與手機連接到同一 Wifi 下,用手機訪問本地服務 loalhost 對應的內網 ip 地址即可
添加回答
舉報