亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中級指南-04 Vue中跨域以及打包部署到nginx跨域設置

發布時間:2020-07-12 15:32:52 來源:網絡 閱讀:537 作者:wx5d61fdc401976 欄目:開發技術

前言
眾所周知,我們在做前后端分離項目的時候,經常需要在本地起前端工程,接口希望拉取服務端的實際數據而不是本地的mock數據,而如果本地程序直接訪問遠程接口, 肯定會遇到跨域問題。

什么是跨域?實現跨域的多種方式?
這里我就不詳細介紹了,大家自行百度哈

為什么要實現前端跨域
一般來講,前后端分離的項目在大公司都會由后臺設置允許跨域訪問,因為后臺設置允許跨域是很簡單和方便的,但是某些情況下,一些小公司或者你工作的場所后臺不怎么配合的情況下,這就需要前端來配置跨域請求來方便我們使用接口

vue項目中的配置
以vue-cli搭建的項目為例, 在webpack配置文件 /config/index.js, 由于我們是在開發環境下使用,自然而然是要配置在dev里面,找到 proxyTable屬性,配置如下:

dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
<!-- 使用proxyTable進行跨域設置 -->
proxyTable: {
'/api': {
target: 'http://www.abc.com', // 設置你調用的接口域名和端口號, 別忘了加http
changeOrigin: true, // 是否跨域
pathRewrite: {
// 這里理解成用'/api'代替target里面的地址,后面組件中我們掉接口時直接用api代替
// 比如我要調用'http://www.abc.com/user/add',直接寫'/api/user/add'即可'
'^/api': '/'
}
}
},

// Various Dev Server settings
host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-

/**
 * Source Maps
 */

// https://webpack.js.org/configuration/devtool/#development
devtool: 'cheap-module-eval-source-map',

// If you have problems debugging vue-files in devtools,
// set this to false - it *may* help
// https://vue-loader.vuejs.org/en/options.html#cachebusting
cacheBusting: true,
cssSourceMap: true

},
復制代碼
上面proxyTable屬性中的配置,效果就是將本地8080端口的一個請求代理到了http://www.abc.com這個域名下

'http://localhost:8080/api' ===> 'http://www.abc.com/'
復制代碼
注意: 以上設置只能在開發環境下使用,打包后會出現路徑問題的

注意: Vue-cli提供的代理功能,只是讓你在開發環境下使用的,它(http-server-middleware)依賴于node環境,生產代碼應該使用npm run build然后把dist放到nginx服務器上,在nginx上配置代理地址

Vue項目部署到nginx上的跨域設置
這還沒完,現在我們要將項目部署到nginx上,此時原來可以訪問的接口又訪問不到了,所以這個時候還要對nginx進行設置。

windows系統下載nginx
下載地址: nginx.org/en/docs/win…

選擇download進去選擇下載版本頁面

這里選擇穩定版下載即可

下載完成后目錄如下

進入cong文件,打開nginx.congf文件,找到server對象里面的listen屬性查看查看監聽的端口號(默認80端口)

在nginx根目下啟動nginx.exe,如果出現一個黑窗口一閃而過,說明啟動成功,訪問localhost:80出現此頁面則訪問成功

如果訪問不成功有可能是端口被占用,修改上面的端口號,重啟nginx即可, 瀏覽器訪問localhost:XXXX
Vue項目部署在nginx上的配置
vue項目運行 npm run build 進行項目打包記得有本地靜態資源文件的需要需要webpack配置, 如下:
config文件下的index.js文件找到build屬性
assetsPublicPath: '/' =>>>>> assetsPublicPath: './'
復制代碼

build文件下的untils文件中找到vue-style-loader
增加 publicPath: '../../'
復制代碼

此時打包后的dist文件可以不放置服務器環境下訪問, 直接打開dist文件目錄下的index.html就可以打開訪問
這時候的靜態資源都可以被加載出來,且不會報錯,但是api訪問的話還是會報錯
復制代碼

將打包后的dist文件里面的內容復制一份到nginx文件中的html文件中

打開html文件清空里面的內容,將復制的內容粘貼進去
復制代碼

進入cong文件,打開nginx.congf文件,找到server屬性在里面新增一條配置
location /api {
proxy_pass http://localhost:4000/;
}
復制代碼

你要訪問那個地址這里就修改為你要訪問的那個地址
復制代碼

以上配置就全部完成啦
注意: 修改完nginx中的配置一定要重啟nginx才可以, 切記!!!

nginx簡單的操作命令
nginx.exe -s stop // stop是快速停止nginx,可能并不保存相關信息
nginx.exe -s quit // quit是完整有序的停止nginx,并保存相關信息
nginx.exe -s reload // 當配置信息修改,需要重新載入這些配置時使用此命令
nginx.exe -s reopen // 重新打開日志文件
nginx -v // 查看Nginx版本
復制代碼
以上就是我在項目中使用的配置啦,還有一些更高級的配置還沒有接觸使用到,供大家參考

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

防城港市| 台中县| 陆良县| 西和县| 改则县| 驻马店市| 南城县| 托克逊县| 中卫市| 铜鼓县| 体育| 北票市| 巴中市| 徐汇区| 同仁县| 广灵县| 佳木斯市| 宾阳县| 宾川县| 乌拉特中旗| 额尔古纳市| 浦城县| 桓台县| 湘乡市| 佛冈县| 黄冈市| 松阳县| 蒙城县| 阳泉市| 南部县| 胶州市| 尉犁县| 云南省| 兰西县| 镇安县| 武城县| 泾川县| 临沭县| 扶绥县| 邢台县| 荔浦县|