最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解如何解決Vue2前端項目無法訪問本地資源問題

 更新時間:2025年09月13日 09:39:40   作者:網(wǎng)羅開發(fā)  
最近遇到不少同學反饋,Vue2 項目能 npm run serve 啟動,但頁面一直轉(zhuǎn)圈,某個 chunk.js 加載不到(pending),本文我們就來看看具體解決方法吧

前言

最近遇到不少同學反饋:Vue2 項目能 npm run serve 啟動,但頁面一直轉(zhuǎn)圈,某個 chunk.js 加載不到(pending),靜態(tài) logo 卻能顯示,別人能 ping 通你的電腦但訪問端口就不通。本篇把這類問題做成一篇易讀的技術(shù)文章,按排查思路一步步來,最后給出可運行的 Demo 與常見修復方法。

摘要

瀏覽器能 ping 主機但無法加載某個 chunk,常見原因并非“Vue 框架壞了”,而是 本機服務監(jiān)聽/網(wǎng)絡(luò)路徑/代理/防火墻/host/DNS/webpack publicPath 等網(wǎng)絡(luò)層面或環(huán)境配置的問題。重點排查:dev server 的綁定地址(host)、chunk 的 URL(publicPath)、本機防火墻或企業(yè)代理/安全網(wǎng)關(guān)、以及環(huán)境變量(HTTP_PROXY/NO_PROXY)。

先看現(xiàn)象

  • Vue2(element + 公司封裝庫),npm i; npm run serve 啟動沒報錯。
  • 瀏覽器打開頁面:公司 logo(靜態(tài)資源)能加載,但項目的某個 chunk.js 一直 pending(轉(zhuǎn)圈)。
  • 今天上午正常,下午就不行了(環(huán)境突然變壞)。
  • 任務管理器無異常;公司安全軟件懷疑但被排查為“沒問題”。
  • 在本機上其他人的項目也出現(xiàn)相同現(xiàn)象(說明環(huán)境問題)。
  • 別人的電腦能 ping 到你機器,但訪問端口(例如 8080)就一直轉(zhuǎn)圈。
  • 切換瀏覽器/無痕都不行。Node 版本受限(公司要求 node 14.18.0)。

為什么會發(fā)生?可能的原因一覽

dev server 只綁定到 127.0.0.1(localhost)而不是 0.0.0.0,外網(wǎng)訪問或用其他主機名會失敗(但 ping 主機仍然能通,因為 ICMP 與 TCP 端口不同)。

本機防火墻或安全產(chǎn)品阻止了 TCP 端口(允許 ping,但攔截 TCP/HTTP)。

webpack devServer 的 publicPath / BASE_URL 配置錯誤,chunk 的實際 URL 指向錯誤域名或端口。

本地代理 / HTTP_PROXY / HTTPS_PROXY 環(huán)境變量影響,導致請求被代理或中斷。

**企業(yè)安全/網(wǎng)關(guān)(WAF、IDS/IPS、證書中間人)**阻止對某些文件擴展名或大文件傳輸。

端口被占用 / 啟動了不同實例 / 啟動出錯但未明顯報錯(例如 HMR 服務沒有啟動但靜態(tài)文件有)。

瀏覽器緩存 / Service Worker / PWA 的緩存策略導致舊資源或錯誤地址被請求。

DNS/hosts 被改動(本機或公司內(nèi)網(wǎng) DNS 指向錯誤)導致 chunk 請求去到不可達服務。

webpack/打包鏈路出錯,chunk 未生成或路徑名發(fā)生變化(不太常見,但要確認文件存在)。

排查步驟

下面是一個實戰(zhàn)化的排查流程,照著做,能一步步把問題逼近并修復。

1) 在瀏覽器 DevTools 查看 Network

打開 Network 面板,刷新頁面。

找到那個 pending 的 chunk.js,右鍵 → Open in new tab,觀察地址(完整 URL)、協(xié)議(http/https)、端口、host。

觀察返回狀態(tài):pending / stalled / blocked:other / net::ERR_CONNECTION_REFUSED / net::ERR_CONNECTION_TIMED_OUT / CORS 報錯等。

  • ERR_CONNECTION_REFUSED:說明目標主機沒有在該端口監(jiān)聽(或被本機防火墻攔截)。
  • ERR_CONNECTION_TIMED_OUT:網(wǎng)絡(luò)路由被丟棄,可能被防火墻或代理中間件阻斷。
  • blocked:瀏覽器或擴展攔截。

如果請求 URL 指向 http://localhost:8080/...,且在同機器上打開仍 pending,則問題在本機(服務或防火墻)。

如果 URL 指向 http://your-hostname:8080/...,但你的 dev server 只綁定 localhost,外網(wǎng)訪問會失敗。

2) 在啟動終端看npm run serve輸出

Vue CLI / webpack-dev-server 啟動時會打?。?/p>

App running at:
- Local:   http://localhost:8080/
- Network: http://192.168.x.y:8080/

確認 Network 地址是否展示且端口正確。若沒有顯示 Network 地址,說明綁定了 127.0.0.1。

3) 檢查服務監(jiān)聽地址(端口綁定)

在終端運行(不同系統(tǒng)命令):

Linux/macOS:

# 查看 8080 是否被進程監(jiān)聽(替換端口)
ss -tlnp | grep 8080
# 或
lsof -i :8080

Windows (PowerShell):

netstat -ano | findstr :8080
# 得到 PID 后: tasklist /FI "PID eq 1234"

解釋:如果監(jiān)聽地址是 127.0.0.1:8080,外網(wǎng)訪問會失?。蝗羰?0.0.0.0:8080,表示所有網(wǎng)卡都綁定了。

4) 用 curl / telnet / nc 測試

在本機(Server)試:

curl -v 'http://localhost:8080/path/to/chunk.js'

在局域網(wǎng)另一臺電腦試(用你的 IP):

curl -v 'http://192.168.x.y:8080/path/to/chunk.js'
# 或
telnet 192.168.x.y 8080
# 或 nc -vz 192.168.x.y 8080

如果 curl 在本機能成功但遠程失敗,說明防火墻或路由問題。重要:ping 通不代表 TCP 端口可達(ICMP vs TCP)。

5) 檢查防火墻/安全軟件

Windows 防火墻:可以短暫禁用防火墻測試(僅限調(diào)試),或者新建入站規(guī)則允許該端口。

關(guān)掉測試(慎重):

# 僅測試時運行(管理員)
netsh advfirewall set allprofiles state off
# 開啟
netsh advfirewall set allprofiles state on

Linux ufw

sudo ufw status
sudo ufw disable   # 僅測試
sudo ufw enable

macOS:

去 系統(tǒng)偏好設(shè)置 → 安全性與隱私 → 防火墻,臨時關(guān)閉測試。

注意:企業(yè)安全軟件可能不會被這些操作影響(它是在驅(qū)動層或網(wǎng)卡層攔截)。與安全團隊溝通,讓他們查看是否有端口策略或流量審計。

6) 檢查代理環(huán)境變量

有些公司環(huán)境會設(shè)置 HTTP_PROXY HTTPS_PROXY,會影響 npmcurl 等。查看環(huán)境變量:

# macOS / Linux
env | grep -i proxy

# Windows PowerShell
Get-ChildItem Env:*proxy*

如果有代理,確保你添加 NO_PROXY 列表包含本地地址和局域網(wǎng) NO_PROXY=localhost,127.0.0.1,192.168.0.0/16。

7) 檢查 webpack/vite/publicPath 配置

如果 chunk 的 URL 指向了錯誤域名(比如使用機器名、或者使用了 HTTPS 協(xié)議但 dev server 是 HTTP),會導致請求卡住。檢查 vue.config.js

// vue.config.js
module.exports = {
  publicPath: '/', // 或者你項目需要的 base url
  devServer: {
    host: '0.0.0.0', // 允許外網(wǎng)訪問
    port: 8080,
    allowedHosts: 'all', // webpack-dev-server 4+
    // disableHostCheck: true (舊版本)
  }
}

如果你用的是 --host 參數(shù),也可以:

# 允許外網(wǎng)訪問并把地址打印為 Network
HOST=0.0.0.0 npm run serve
# 或
npm run serve -- --host 0.0.0.0

保證 dev server 綁定到 0.0.0.0,而不是 localhost。

8) 清理緩存、重裝依賴

rm -rf node_modules package-lock.json yarn.lock
npm cache clean --force
npm install
npm run serve

有時公司內(nèi)部私 服(npm registry)或者緩存損壞也會導致構(gòu)建產(chǎn)物不完整。

9) 檢查瀏覽器安全插件 / Service Worker

  • 試一個完全干凈的瀏覽器(新裝或 Profile),或手機熱點網(wǎng)絡(luò)。
  • 如果有 Service Worker 或 PWA,清除站點數(shù)據(jù) + unregister SW(DevTools → Application → Service Workers)。

10) 用端口轉(zhuǎn)發(fā)/外網(wǎng)隧道驗證

如果懷疑公司網(wǎng)絡(luò)設(shè)備攔截,臨時用 ngrok / localtunnel 將本地服務公開到外網(wǎng)(僅測試):

npm i -g localtunnel
lt --port 8080
# or ngrok http 8080

如果通過隧道訪問正常,說明確實被公司網(wǎng)絡(luò)/防火墻攔截。

常見根因 & 對應的解決辦法

根因 A:devServer 只監(jiān)聽 localhost

癥狀:本機瀏覽器訪問 localhost 正常,但別人或通過 IP 訪問或跨網(wǎng)卡訪問失敗。

解決:在 vue.config.js 或命令行里把 host 改為 0.0.0.0。

// vue.config.js
module.exports = {
  devServer: { host: '0.0.0.0', port: 8080, allowedHosts: 'all' }
};

或者:

npm run serve -- --host 0.0.0.0

根因 B:本機/企業(yè)防火墻攔截該端口

癥狀:ping 能通但 curl 遠程訪問超時或被拒。

解決:與安全團隊溝通,臨時允許某端口;或自行臨時關(guān)閉防火墻排查(僅限測試)。

根因 C:環(huán)境代理(HTTP_PROXY/HTTPS_PROXY)影響

癥狀:請求被公司代理篡改或轉(zhuǎn)發(fā)失敗。

解決:設(shè)置 NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,或在 DevServer 配置繞過代理。

根因 D:wrong publicPath / chunk URL 指向不對

癥狀:Network 里顯示請求去往錯誤域名或協(xié)議。

解決:修 publicPath(Vue CLI)或 base(Vite),確保靜態(tài)資源 URL 與 dev server 的 host/port 對應。

根因 E:HMR/socket 升級失?。▽е马撁婵ㄗ。?/h3>

癥狀:控制臺顯示 HMR websocket 連接失敗,頁面不加載最新 chunk。

解決:使 HMR 可從瀏覽器訪問,devServer.hot = true,并確保 sockjs 路徑正確或 public 指向正確域名。

根因 F:安全/審計軟件做了中間人或 TLS 檢查

癥狀:HTTPS 證書異?;蚣虞d被 reset,通常在公司網(wǎng)絡(luò)。

解決:檢查瀏覽器 security tab,若證書由公司 CA 簽發(fā)則與安全團隊確認規(guī)則是否攔截 JS 文件。

可運行 Demo

下面的 Demo 非常?。阂粋€ Express 靜態(tài)服務器,分別在 127.0.0.10.0.0.0 啟動,演示如何用 curl 在本機和遠程測試訪問。把代碼復制到目錄,運行體驗。

server.js

// server.js
const express = require('express');
const app = express();
app.use(express.static(__dirname + '/public'));

app.get('/ping', (req, res) => res.send('pong'));
const port = process.env.PORT || 8080;

const host = process.env.HOST || '127.0.0.1'; // 默認只監(jiān)聽本地
app.listen(port, host, () => {
  console.log(`Static server running at http://${host}:${port}/`);
});

public/index.html

<!doctype html>
<html>
<head><meta charset="utf-8"><title>Static Demo</title></head>
<body>
  <h1>Hello static</h1>
  <script src="/js/chunk-demo.js"></script>
</body>
</html>

public/js/chunk-demo.js

console.log('chunk-demo loaded');

運行步驟

安裝并運行(本地):

npm init -y
npm i express
node server.js        # 默認綁定 127.0.0.1
# 在瀏覽器打開 http://localhost:8080/ 應該能看到頁面。

在另一臺機器(或用本機用 IP)測試:

curl -v http://192.168.x.y:8080/  # 如果綁定127.0.0.1,這會失敗

改為綁定 0.0.0.0(允許外網(wǎng)訪問)并重啟:

HOST=0.0.0.0 node server.js
# 在控制臺會看到 Static server running at http://0.0.0.0:8080/
# 這時 curl 訪問 http://192.168.x.y:8080/ 應該能成功(如果防火墻未阻攔)

這個 Demo 能直觀驗證“綁定地址 vs 防火墻”問題:若綁定 127.0.0.1,外網(wǎng)無法訪問;若綁定 0.0.0.0 且防火墻允許,則外網(wǎng)能訪問。

最終建議

開發(fā)時固定 devServer 配置:在 vue.config.js 里統(tǒng)一 host: '0.0.0.0'、allowedHosts: 'all',并文檔化團隊使用方式(尤其多機器協(xié)作時)。

配置 NO_PROXY:在公司網(wǎng)絡(luò)環(huán)境下,確保 NO_PROXY 覆蓋本地和局域網(wǎng)地址。

把 publicPath 寫清楚:避免打包后資源 URL 指向錯誤域名。

與安全團隊建立溝通渠道:公司安全軟件/代理經(jīng)常是問題來源,建議做一次“允許端口/規(guī)則清單”溝通。

本地調(diào)試時使用 ngrok/localtunnel 做快速排查:如果通過隧道能訪問,說明是網(wǎng)絡(luò)/防火墻問題而不是應用問題。

把常用診斷命令寫進 READMEss/netstat/lsof/curl 等快速檢查步驟可以節(jié)省很多 time-to-fix。

總結(jié)

  • ping 能通不等于 HTTP/TCP 端口可達;優(yōu)先檢查 devServer 的 host 綁定與防火墻規(guī)則。
  • 用瀏覽器 DevTools → Network 找到 chunk 的完整 URL,是定位問題最直接的線索。
  • 如果本機環(huán)境忽然在一段時間內(nèi)全部項目都失效,強概率是系統(tǒng)環(huán)境(防火墻/代理/hosts/證書)突然變了。
  • 臨時用 HOST=0.0.0.0 npm run serve、NGROK/LOCALTUNNEL、curl -v、關(guān)閉防火墻(僅測試)等方式快速定位。

到此這篇關(guān)于一文詳解如何解決Vue2前端項目無法訪問本地資源問題的文章就介紹到這了,更多相關(guān)Vue項目無法訪問本地資源問題解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue中大文件上傳企業(yè)級實現(xiàn)方案的完整代碼

    Vue中大文件上傳企業(yè)級實現(xiàn)方案的完整代碼

    在Vue項目中,大文件直接上傳會面臨請求超時、瀏覽器卡死等問題,本文基于Vue3+Node.js實現(xiàn)企業(yè)級完整版,代碼精簡可直接運行,無復雜第三方依賴,有需要的可以了解下
    2026-04-04
  • hansontable在vue中的基本使用教程

    hansontable在vue中的基本使用教程

    handsontable是目前在前端界最接近excel的插件,可以執(zhí)行編輯,復制粘貼,插入刪除行列,排序等復雜操作,這篇文章主要介紹了hansontable在vue中的基本使用,需要的朋友可以參考下
    2022-10-10
  • Vue移動端實現(xiàn)pdf/excel/圖片在線預覽

    Vue移動端實現(xiàn)pdf/excel/圖片在線預覽

    這篇文章主要為大家詳細介紹了Vue移動端實現(xiàn)pdf/excel/圖片在線預覽功能的相關(guān)方法,文中的示例代碼講解詳細,有需要的小伙伴可以參考下
    2024-04-04
  • 記一次vuex的mapGetters無效原因及解決

    記一次vuex的mapGetters無效原因及解決

    這篇文章主要介紹了vuex的mapGetters無效原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Element-ui table中過濾條件變更表格內(nèi)容的方法

    Element-ui table中過濾條件變更表格內(nèi)容的方法

    下面小編就為大家分享一篇Element-ui table中過濾條件變更表格內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue3中$attrs的變化與inheritAttrs的使用詳解

    vue3中$attrs的變化與inheritAttrs的使用詳解

    $attrs現(xiàn)在包括class和style屬性。?也就是說在vue3中$listeners不存在了,vue2中$listeners是單獨存在的,在vue3?$attrs包括class和style屬性,?vue2中?$attrs?不包含class和style屬性,這篇文章主要介紹了vue3中$attrs的變化與inheritAttrs的使用?,需要的朋友可以參考下
    2022-10-10
  • vue+vue-meta-info動態(tài)設(shè)置meta標簽教程

    vue+vue-meta-info動態(tài)設(shè)置meta標簽教程

    這篇文章主要介紹了vue+vue-meta-info動態(tài)設(shè)置meta標簽教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue使用video.js依賴接入視頻流((hls(m3u8)、flv))的示例代碼

    vue使用video.js依賴接入視頻流((hls(m3u8)、flv))的示例代碼

    這篇文章給大家介紹了vue如和使用video.js依賴接入視頻流((hls(m3u8)、flv)),文章通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Vue深入講解數(shù)據(jù)響應式原理

    Vue深入講解數(shù)據(jù)響應式原理

    應用會對用戶的操作進行反饋,就叫響應式,數(shù)據(jù)變化會實時改變UI,就叫數(shù)據(jù)響應式,修改Vue實例中的數(shù)據(jù)時,視圖會重新渲染,就是Vue的數(shù)據(jù)響應式
    2022-05-05
  • vue+elementUI組件table實現(xiàn)前端分頁功能

    vue+elementUI組件table實現(xiàn)前端分頁功能

    這篇文章主要為大家詳細介紹了vue+elementUI組件table實現(xiàn)前端分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評論

竹山县| 大荔县| 兴隆县| 玉环县| 仪陇县| 安徽省| 湖州市| 中山市| 富宁县| 五家渠市| 郑州市| 崇礼县| 吴桥县| 瓮安县| 宁波市| 奈曼旗| 城步| 赫章县| 汉沽区| 米易县| 搜索| 曲靖市| 隆尧县| 天柱县| 永寿县| 武宁县| 天门市| 酉阳| 霍山县| 大新县| 虞城县| 宜宾县| 萍乡市| 建阳市| 昌平区| 尚义县| 博客| 宜川县| 富顺县| 呼玛县| 陵川县|