1. 通俗易懂講解vue.config.js的配置參數
貼上 官網
vue-cli3 創建的時候並不會自動創建vue.config.js,因為這個是個可選項,所以一般都是需要修改webpack的時候才會自己創建一個vue.config.js
再然後因為vue-cli3內部高度集成了webpack,一般來說使用者不需要再去知道weboack做了什麼,所以沒有暴露webpack的配置文件,我們可以手動去創建vue.config.js 去修改默認的webpack。注意,只能叫vue.config.js。
publicPath (從 Vue CLI 3.3 起已棄用baseUrl,請使用publicPath)
參考: https://my.oschina.net/u/4446873/blog/4882847
默認情況下,Vue CLI 會假設你的應用是被部署在一個域名的根路徑上,例如 https://www.xxx.com/ 。如果應用被部署在一個子路徑上,你就需要用這個選項指定這個子路徑。例如,如果你的應用被部署在 https://www.xxx.com/my-app/ ,則設置 publicPath 為 /my-app/。
這個值在開發環境下同樣生效。如果你想把 開發伺服器架設在根路徑 ,你可以使用一個條件式的值:
通常開發環境,本地運行都會直接部署在根路徑上,publicPath設置為'/',訪問地址是你的IP地址。如下是設置成'/app'的效果:
從上面可以得知,靜態資源文件都是在app下的,所以在dist下新增添一個app目錄,把dist下文件放到app下,相當於一個文件的路徑,可以發現項目會正常啟動。一般nginx都會配置一個靜態資源目錄,打包後的文件都會放到這個靜態資源目錄裡面,nginx去做映射,所以publicPath這個屬性基本不用改。'/'就行。
結論: publicPath配置成'/aaa/bbb/ccc', 則需在相應的伺服器路徑中新建aaa>bbb>ccc的文件夾,然後將打包後的文件放進去,就ok啦。
項目中,我會在.env.proction文件中設置一個變數VUE_APP_BASE_URL ,項目打包後告訴相關人員 nginx 路由前綴是什麼即可
outputDir
assetsDir
indexPath
filenameHashing
直觀效果:當運行npm run build時,
打包後的文件後面都會帶一個8位的hash值,那啥是個hash值?
在打包出來的文件名上加上文件內容的hash是目前最常見的有效使用瀏覽器長緩存的方法,js文件如果有內容更新,hash就會更新,瀏覽器請求路徑變化所以更新緩存,如果js內容不變,hash不變,直接用緩存。(這段話是從別的文章裡面參考的)。
將filenameHashing這個值設置為false試試,就不會帶那個後綴hash值。
pages
lintOnSave
runtimeCompiler
transpileDependencies
proctionSourceMap
crossorigin (不理解)
integrity
configureWebpack
chainWebpack
Css相關配置
devServer
如果你的前端應用和後端 API 伺服器沒有運行在同一個主機上,你需要在開發環境下將 API 請求代理到 API 伺服器。這個問題可以通過 vue.config.js 中的 devServer.proxy 選項來配置。
補充知識
所謂的跨域就是不同源,不滿足協議、域名、埠都相同的約定
http://www.test.com/dir/login.html 同源
https://www.test.com/index.html 不同源 協議不同(https)
http://www.test.com:90/index.html 不同源 埠不同(90)
http://www.demo.com/index.html 不同源 域名不同(demo)
當協議、域名、埠中任意一個不相同時,就是不同源。若不同源之間相互請求資源,就算作跨域
補充知識
反向代理(Reverse Proxy)方式是指以代理伺服器來接受網路上的連接請求,然後將請求轉發給內部網路上的伺服器,並將伺服器上得到的結果返回給請求連接的客戶端,此時代理伺服器對外就表現為一個反向代理伺服器。客戶端無需做任何配置。
修改config/index.js /vue.config.js文件(改完之後千萬記得要重新 npm run dev)
host 將他的值修改為 0.0.0.0,代表可以訪問本機所有的IP地址,讓vue項目可通過localhost和IP同時訪問。
port 設置埠號
open 是否在第一次編譯時是自動打開瀏覽器
hot 開啟為true,啟動熱重載,自動刷新頁面
https
inline
overlay
targe 代理的伺服器,也就是api要訪問的伺服器。
changeOrigin 允許跨域, 為false時,請求頭中host仍然是瀏覽器發送過來的host;如果設置成true:發送請求頭中host會設置成target的值
ws 是否代理websocket
pathRewrite 重寫 url 的 path 部分
此文記錄下來,方便自己遺忘的時候能夠快速查閱,如有錯誤請指出。
參考鏈接:
https://www.jianshu.com/p/b358a91bdf2d
https://www.jb51.net/article/174200.htm
https://blog.csdn.net/liu_yunzhao/article/details/90520028
這篇文章講的也很詳細 https://blog.csdn.net/guozhangqiang/article/details/87197870
2. nginx nodejs反向代理怎麼配置
1.安裝nodejs,之前就安裝了。
2.安裝nginx ,我採用的直接源碼安裝
3.進入 /usr/local/nginx/conf 目錄,在該目錄下創建include 文件下,我的配置文件就寫在這個文件夾裡面
4.進入 /usr/local/nginx/conf/include 目錄,創建 nginx.node.conf 文件,在裡面輸入如下代碼:
upstream nodejs {
server 127.0.0.1:3000;
#server 127.0.0.1:3001;
keepalive 64;
}
server {
listen 80;
server_name www.penguu.com penguu.com;
access_log /var/log/nginx/test.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://nodejs;
}
}
5.進入/usr/local/nginx/conf ,打開nginx.conf, 在http 裡面添加 include /usr/local/nginx/conf/include/*
6.重啟nginx , 輸入 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
在瀏覽器輸入penguu.com ok.
3. 如何為thinkjs靜態資源配置nginx反向代理
為了讓網站靜態資源載入更快,所以需要在VPS的nginx上配置一個反向代理來直接讓Nginx處理靜態資源,動態類的請求通過反向代理讓Node.js來處理:
?
server {
listen 80;
server_name abc.com www.abc.com;
index index.js index.html index.htm;
if ($host != 'abc.com' ) {
rewrite ^/(.*)$ http: //abc.com/$1 permanent;
}
root /www/web/myproject/public_html/www;
if ( -f $request_filename/index.html ){
rewrite (.*) $1/index.html break ;
}
if ( !-f $request_filename ){
rewrite (.*) /index.js;
}
location = /index.js {
#proxy_http_version 1.1;
proxy_set_header Connection "" ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true ;
proxy_pass http: //127.0.0.1:8363$request_uri;
proxy_redirect off;
}
location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|ico|svg|cur|ttf|woff)$ {
expires 1000d;
}
}
如果是你的項目,需要改動如下地方:
server_name abc.com www.abc.com 將abc.com www.abc.com改為項目對應的域名
root /www/web/myproject/public_html/www 配置項目的根目錄,一定要到www目錄下
proxy_pass http://127.0.0.1:8363$request_uri;將埠6666改為項目里配置的埠
4. 如何解決前端跨域問題
可以使用伺服器代理或者在後端設置允許跨域。
現在的項目一般是在後端設置允許跨域,前端在帶有允許跨域的情況下,可以像沒有跨域一樣正常訪問。
如果前端單獨發布到伺服器,也可以在伺服器是設置代理,使用代理轉發請求。
5. 如何給 NPM 設置代理
npm全稱為Node Packaged Moles。它是一個用於管理基於node.js編寫的package的命令行工具。其本身就是基於node.js寫的,這有點像gem與ruby的關系。
在我們的項目中,需要使用一些基於node.js的javascript庫文件,就需要npm對這些依賴庫進行方便的管理。由於我們的開發環境由於安全因素在訪問一些網站時需要使用代理,其中就包括npm的repositories網站,所以就需要修改npm的配置來加入代理。
下面簡要介紹下npm的配置以及如何設置代理。
npm獲取配置有6種方式,優先順序由高到底。
命令行參數。--proxy http://server:port即將proxy的值設為http://server:port。
環境變數。 以npm_config_為前綴的環境變數將會被認為是npm的配置屬性。如設置proxy可以加入這樣的環境變數npm_config_proxy=http://server:port。
用戶配置文件。可以通過npm config get userconfig查看文件路徑。如果是mac系統的話默認路徑就是$HOME/.npmrc。
全局配置文件。可以通過npm config get globalconfig查看文件路徑。mac系統的默認路徑是/usr/local/etc/npmrc。
內置配置文件。安裝npm的目錄下的npmrc文件。
默認配置。 npm本身有默認配置參數,如果以上5條都沒設置,則npm會使用默認配置參數。
- npm config set <key> <value> [--global]
- npm config get <key>
- npm config delete <key>
- npm config list
- npm config edit
- npm get <key>
- npm set <key> <value> [--global]
- $ npm config set proxy http://server:port$ npm config set https-proxy http://server:port
- $ npm config set proxy http://username:password@server:port$ npm config set https-proxy http://username:pawword@server:port
- $ npm config set registry "http://registry.npmjs.org/"
針對npm配置的命令行操作
在設置配置屬性時屬性值默認是被存儲於用戶配置文件中,如果加上--global,則被存儲在全局配置文件中。
如果要查看npm的所有配置屬性(包括默認配置),可以使用npm config ls -l。
如果要查看npm的各種配置的含義,可以使用npm help config。
為npm設置代理
如果代理需要認證的話可以這樣來設置。
如果代理不支持https的話需要修改npm存放package的網站地址。
6. 用eclipse開發前端頁面html+js,並與php開發的後端進行交換,請教如何在eclipse上配置環境及伺服器
1.貌似js是所有瀏覽器都支持(可能版本及某些特性的支持不一樣),不用專門就此配置環境及伺服器(除非你想要支持java)。
2.貌似ajax前端應用的更多些,通常都是ajax發送請求到後端,再根據後端的返回數據進行響應處理,將結果呈現到瀏覽器。
3.如果後端使用php,那麼根據伺服器的不同可以選擇 wamp / lamp,主要的區別在於伺服器一個用的 IIS ,另一個用的 Apache。
搭建PHP環境,通常是 IIS (Apache) + MySQL (或其他資料庫)+PHP,你既可以分別下載並安裝這三種軟體,也可以下載網上提供的打包好的集成安裝包。
如果只是想要快速搭建PHP的支持環境,那麼,使用集成安裝包(如 XAMPP、WampServer等等),使用方便。
而如果想學習和掌握一門技術,那麼,手動下載各個部分分別安裝配置環境是必不可少的體驗。
7. vue.config.js 配置代理不生效
你的代理設置的是/api前綴的就轉發到代理伺服器上,所以在你的代碼發起請求的時候加上api,比如:this.$axios.post('/api/tcCodeSwitchid/getSwitchInfos', ...)
8. 求解答關於Vue.config.js文件的詳細配置
這里是創建代理伺服器,訪問的時候會通過代理伺服器轉發,所以就不會出現跨域問題。
這里的配置是以"/api"開頭的地址,都通過代理訪問,其他的地址則不通過代理,後面的是代理地址。
9. apache2.2 反向代理 配置css js靜態文件
1.先去掉下面兩行的注釋
LoadMole proxy_mole
moles/mod_proxy.so
LoadMole proxy_http_mole
moles/mod_proxy_http.so
2.然後在最後增加
ProxyPass /images !
ProxyPass /css !
ProxyPass /js !
ProxyPass / http://localhost:8080/這個也可以寫為:
ProxyPass
/oa
http://localhost:8080/oa
ProxyPassReverse
/oa
http://localhost:8080/oa
也可以連續增加以上兩行,就是多個tomcat啟動
ProxyPass /meb http://192.168.6.103:8081/meb
ProxyPassReverse /meb http://192.168.6.103:8081/meb
10. 求node.js搭建前端web伺服器步驟,按網上的教程,安裝完node.js就不知道怎麼搭建了,都
安裝完node.js之後,你可以考慮使用webstorm開發工具創建web項目。
比如創建express項目。自動創建基於express 的web項目。