鍍金池/ 問(wèn)答/Linux  HTML/ 將單頁(yè)面項(xiàng)目部署到nginx

將單頁(yè)面項(xiàng)目部署到nginx

  1. 列表項(xiàng)目我在本地用vue-cli做好了一個(gè)項(xiàng)目,然后npm run build將index.html和static打包到了dist文件夾。
  2. 那么我想把這個(gè)項(xiàng)目部署到個(gè)人服務(wù)器(已安裝nginx服務(wù))上,我直接在conf.d里新增加一個(gè)配置文件把port 80和server_name xxx.xxx.xxx定義好,然后把root直接指向dist所在目錄,index指向index.html就可以了么?就當(dāng)這個(gè)index.html是一個(gè)靜態(tài)資源?然后直接訪問(wèn)xxx.xxx.xxx?
  3. 那如果涉及到數(shù)據(jù)請(qǐng)求呢?豈不是又存在一個(gè)跨域問(wèn)題?(在vue-cli的dev環(huán)境下是可以用proxyTabel來(lái)設(shè)置代理處理跨域問(wèn)題,那開(kāi)發(fā)環(huán)境呢?)
回答
編輯回答
心癌
  1. nginx的配置網(wǎng)上有很多可以參考,另外如果大致清楚各個(gè)配置命令的意思,也可以試試用nginxconfig.io在線生成。到時(shí)候把dist里的東西放到root命令指向的路徑就行了。
  2. 需要跨服搞的話,有兩種方式:一種是用nginx代理獲取,需要寫(xiě)下配置;另一種是用服務(wù)器端腳本語(yǔ)言(當(dāng)然服務(wù)器上需要搭環(huán)境),比如node.js或者php,寫(xiě)個(gè)代理,然后每次通過(guò)代理中轉(zhuǎn)下調(diào)用就行了。
2018年2月12日 19:17
編輯回答
你好胸

對(duì)于第2個(gè),是這樣的,但需要考慮到前后端路由的處理問(wèn)題,建議使用try_files,設(shè)置后類似于這樣:

{
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
        # 路由前端處理
        try_files $uri /index.html;
    }
}

對(duì)于第3個(gè),如果api server支持跨域,可以直接在前端進(jìn)行http請(qǐng)求時(shí)設(shè)置baseUrl;如果不設(shè)置baseUrl,其實(shí)本質(zhì)跟開(kāi)發(fā)環(huán)境一樣的,在nginx配置文件里設(shè)置代理,類似于:

{
    location /api {
      # proxy
        proxy_pass http://192.168.31.5:8181;
    }
}

關(guān)于nginx配置,你可以看下這里nginx入門(mén)

2018年9月6日 06:46