Maison  >  Article  >  interface Web  >  Utilisez Nginx dans vue.js pour résoudre les problèmes inter-domaines

Utilisez Nginx dans vue.js pour résoudre les problèmes inter-domaines

亚连
亚连original
2018-06-07 18:17:153373parcourir

Ci-dessous, je partagerai avec vous un article sur l'utilisation du proxy vue.js et de Nginx pour résoudre des problèmes inter-domaines. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde.

Utilisez le proxy inverse Nginx pour résoudre les problèmes inter-domaines (vue.js utilise un proxy pour supprimer les demandes d'options déclenchées par vue.js en raison d'un inter-domaine)

Notre projet nécessite toujours un nœud. js en tant que conteneur

1. Installez Nginx sous Windows (téléchargez la version stable sur le site officiel http://nginx.org/en/download.html )

2. Modifier le serveur du fichier nginx.conf dans config

server { 
listen 8899;// 你的端口 
server_name localhost; 
root C:/ZOBSF_F/dist;//你打包部署的文件路径 
#charset koi8-r; 
#access_log logs/host.access.log main; 
# 匹配 api 路由的反向代理到API服务 
location ^~/api { 
proxy_pass http://119.23.227.141:10001/;//你的后端IP和端口 
} 
#根据路由设置,避免出现404 
location / { 
try_files $uri $uri/ @router; 
index index.html; 
} 
location @router { 
rewrite ^.*$ /index.html last; 
} 
#error_page 404 /404.html; 
# redirect server error pages to the static page /50x.html 
# 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
root html; 
} 
# proxy the PHP scripts to Apache listening on 127.0.0.1:80 
# 
#location ~ \.php$ { 
# proxy_pass http://127.0.0.1; 
#} 
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
# 
#location ~ \.php$ { 
# root html; 
# fastcgi_pass 127.0.0.1:9000; 
# fastcgi_index index.php; 
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
# include fastcgi_params; 
#} 
# deny access to .htaccess files, if Apache's document root 
# concurs with nginx's one 
# 
#location ~ /\.ht { 
# deny all; 
#} 
}

3. fichier de votre package uve.js Comme suit

4. Ajoutez ensuite un fichier de configuration de démarrage du projet server.production.js

var express = require('express');
var app = express();
var compression = require('compression');
var proxyMiddleware = require('http-proxy-middleware')
var history = require('connect-history-api-fallback');
app.use(compression());
app.use(express.static(__dirname));
app.middleware = [//使用代理api
    proxyMiddleware(['/api'], {target: 'http://192.168.11.103:10001',
    changeOrigin: true,
    pathRewrite: {
    '^/api' : '/', 
  },}),
];
app.get('*', function(req, res) {
  res.sendFile(__dirname + '/index.html');
});
app.use(history());
app.use(app.middleware);

app.listen('8080', function(error) {
  console.info("==================系统正在启动中...=============================");
 if (error) {
  console.error(error)
 } else {
  console.info("==================9999系统启动成功!!!=============================")
 }
});

5. Utilisez ensuite la commande node server.production.js dans le répertoire du projet et appuyez sur Entrée pour constater que le package manque de dépendances. installez [composant de dépendance du message d'erreur] pour les avoir respectivement express, compression, http-proxy-middleware, etc.

Ensuite démarrez le projet et accédez à l'adresse http://localhost:8080/xxx

6. vue.js utilise un proxy Plus précisément, vous pouvez vous référer à Baidu (modifiez simplement inde.js dans le fichier de configuration)

 proxyTable: {
     '/api': {
    target: Host.Host,//设置你调用的接口域名和端口号 别忘了加http
    changeOrigin: true,
    pathRewrite: {
     '^/api': '/'//这里理解成用‘/api'代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add'即可
    }
   }
  },

Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère qu'il sera utile à tout le monde. l'avenir.

Articles associés :

Comment implémenter le chargement asynchrone de composants dans vue+webpack ?

Liés aux problèmes inter-domaines jsonp dans vue-resource

Comment modifier le style du sous-composant via le composant parent dans vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn