当前位置: 首页 > 编程日记 > 正文

grunt-connect-proxy解决开发时跨域问题

最近的项目中前后端是完全分离开发的,前端用grunt管理项目。这样就会导致一个问题:开发时前端调用后台的接口时因为不在一个服务器,所以会出现跨域问题。但是也不能用JSONP或CROS方式实现真正的跨域,因为项目发布时其实是在同一个服务器下的。

这时候我们的grunt-connect-proxy就出场了,它就是专门解决这个问题的。

具体配置:

1. 先下载安装这个组件

npm install grunt-connect-proxy --save-dev

这里要注意:一定要提前先装上grunt-contrib-livereload这个组件,不然grunt serve时会总是报错

2.增加配置

var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet;
var mountFolder = function (connect, dir) {return connect.static(require('path').resolve(dir));
};
var proxySnippet = require('grunt-connect-proxy/lib/utils').proxyRequest;

这断代码要加在gruntfile.js顶部,module.exports上边。

然后,再connect中添加proxy配置及livereload配置

connect: {options: {port: 9000,open: true,livereload: 35729,// Change this to '0.0.0.0' to access the server from outsidehostname: 'localhost'},proxies: [{context: '/website',host: 'www.somesite.com',port: 80,https: false,changeOrigin: true}],livereload: {options: {middleware: function (connect) {return [lrSnippet,mountFolder(connect, '.tmp'),connect().use('/bower_components', connect.static('./bower_components')),mountFolder(connect, config.app),proxySnippet,];}
        }},
/***/
}

接下来,再serve这个task里添加proxy

grunt.task.run(['clean:server','wiredep','concurrent:server','autoprefixer','configureProxies',     //增加到livereload前边'connect:livereload','watch']);

OK,到这里代理就加上了!

参考:

https://github.com/drewzboto/grunt-connect-proxy

http://fettblog.eu/blog/2013/09/20/using-grunt-connect-proxy/

http://www.himysql.com/2014/07/29/grunt-connect-proxy-configure/

http://www.ngnice.com/posts/76c4bd0f7a4cdc

转载于:https://www.cnblogs.com/suiblog/p/4453578.html

相关文章:

混合推荐系统就是多个推荐系统“大杂烩”吗?

作者丨gongyouliu编辑丨zandy【导读】在本篇文章中,我们会介绍混合推荐系统(Hybrid Recommender Systems),就是利用多种推荐算法配合起来做推荐,期望避免单个推荐算法存在的问题,最终获得比单个算法更好的推荐效果。本篇文章我们从…

Python3中collections.OrderedDict介绍

Python3中的collections模块实现了特定目标的容器,以提供Python标准内建容器dict、list、set和tuple的替代选择,包括namedtuple、deque、ChainMap、Counter、OrderedDict、defaultdict、UserDict、UserList、UserString。这里介绍下OrderedDict&#xff…

汗!雅虎中国个人空间

今天发现雅虎中国有了个人空间,偷偷试了下,让人失望到极点,几乎没有什么特点,和MSN很相似,空间相册放着好好的Flickr不用,偏偏弄了个很垃圾的相册,还有整合能力也不行。都不知道del.icio.us和Fl…

关于v$process与v$session中process的理解

v$session有个process字段,V$PROCESS有个SPID字段,这两个字段是不是一个意思呢?是不是都代表会话的操作系统进程呢?官方文档上的解释:SPID VARCHAR2(12) Operating system process identifierPROCESS VARCHAR2…

Python3中lambda表达式介绍

Python3中的lambda表达式或lambda函数是匿名函数(anonymous function),意味着该函数没有名称。def关键字用于在Python3中创建一个普通函数,类似地,lambda关键字用于在Python3中创建匿名函数。 Python3 lambda函数语法: lambda pa…

6大理由,告诉你为什么这个大会你不能错过! | 文末有福利

作者 | Carol出品 | 区块链大本营(blockchain_camp)* 文末可参与活动赢赠票!如果说有一个什么领域,能让中科院、华为、腾讯、京东、360、微众银行的大咖汇聚在一起,那一定是——区块链。悄咪咪地给大家剧透一下&#x…

魔与道的反复较量 反垃圾邮件技术

反垃圾邮件武器库不同的反垃圾邮件产品采用的技术有所不同,但总体来说,不外乎以下几种技术,其中,针对垃圾邮件的核心技术有贝叶斯智能分析、垃圾邮件评分、垃圾邮件指纹识别。转载于:https://blog.51cto.com/aonlin/17074

在Centos 7下编译openwrt+njit-client

首先要有一个centos7 step1:更新系统的源: yum install update 但是发现官方的源好像被墙了,于是自己又去换源,找163的源换。具体的操作最后的链接。 可是换完源之后发现163的源只支持到centos6、、、、、、但是就泪崩了。于是又把源换了回来…

Python3中内置函数callable介绍

Python3中的内置函数callable接受一个对象参数,如果此对象参数看起来可调用,则callable函数返回True,否则返回False。如果返回True,则调用仍有可能失败;但如果返回False,则调用对象将永远不会成功。 类是可…

户外广告新创意

近来,各大城市纷纷加大了对户外广告的监管力度,部分城市甚至停止审批户外广告牌。这让户外广告运营者和广告发布商甚为头疼。 长期以来,户外广告牌扮演着截然相反的“双重角色”,在户外广告运营者和广告发布商眼中,“寸…

百度重新定义「智能屏」,瞄准10后

加入「公开课」交流群,获取更多学习资料、课程及热招岗位等信息记者 | 阿司匹林作为中国智能音箱主力推手中的一员,百度从 2017 年已经开始布局。根据数据机构Strategy Analytics发布智能音箱市场报告,2019年第三季度,百度旗下人工…

jQuery最简单的表单提交方式

第一步:绑定事件 常用的与ajax相关的事件参考如下: 1、$(selector).click(function) 2、$(selector).change(function) 3、$(selector).keyup(function) 4、$(selector).submit(function) 提交表单前&#…

Python3中typing模块介绍

typing.py的源码在:https://github.com/python/cpython/blob/main/Lib/typing.py。此模块为类型提示(Type Hints)提供运行时支持(This module provides runtime support for type hints)。从python 3.5版本开始将Typing作为标准库引入。 python3中增加了Function An…

显示所有文件和文件夹无论如何 无法被设置

问题:XP系统选显示所有文件和文件夹确定后没有任何反应再次打开文件夹选项里面仍是不显示隐藏的文件和文件夹 答案:在记事本粘贴下面文字,另存为所有文件, .reg 格式。成功的话图标变为绿色碎方块。在双击它。 Windows Registry E…

工作5年后才明白的道理:不起眼的技能中,藏着你的未来

编程圈儿一直都流传着一个调侃的段子:一流程序员靠数学二流靠算法三流靠逻辑四流靠SDK五流靠Google和StackOverFlow六流靠百度和自己琢磨低端的看高端的就是黑魔法!从过来人的角度看,这不仅仅是个段子,而是目前程序员的真实写照。…

Transform-style和Perspective属性

在《CSS3 Transform——transform-origin》一文中主要介绍了CSS3 Transform属性中的transform-origin属性的使用,其实在transform属性中,transform-origin属性仅是其中之一,要彻底理解transform属性,这是不够的,必须的…

Python3中__call__方法介绍

如果Python3类中有__call__方法,那么此类实例的行为类似于函数并且可以像函数一样被调用。当实例作为函数被调用时,如果定义了此方法,则x(arg1, arg2, …)是x.__call__(arg1, arg2, …)的简写。 为了将一个类实例当作函数调用,我们…

切尔西携手YouTube 英超第一家共享视频球队诞生

英格兰超级足球联赛冠军球队切尔西日前表示,已经与互联网视频服务网站YouTube签订了合作协议,未来将通过YouTube发布每日新闻和视频内容,从而也成为英超首支在线视频服务的球队. 据路透社报道,根据协议的内容,切尔西将建立一个YouTube旗下的品牌网站,其中将发布每日更新内容,当…

商汤联手华科:提出文字检测模型GNNets,新颖模块可解决几何分布难题

加入「公开课」交流群,获取更多学习资料、课程及热招岗位等信息编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】今年的ICCV,商汤科技及联合实验室共有57篇论文入选ICCV 2019(包含11篇Oral&#xff0…

(链表)反转链表Reverse List

逆转链表是简单而又简单的链表问题,其问题的方法之一可以设置三个指针,一个指向当前结点,一个指向前驱结点,一个指向后继指针 代码如下: class Solution { public:ListNode* ReverseList(ListNode* pHead) { // if(pHeadNULL || pHead->nextNULL) // return pH…

很长时间没有来了

好长时间没有来自己的博客了,更新的速度实在是太慢了,自己已经找了一份新的工作,给自己一个好的环境吧,有时间可以去学习更多的网络知识了.学习万岁!加一下,博友:思念狗的骨头:[url]http://starger.blog.51cto.com/ [/url] 他的文章还是比较不错的!转载于:https://blog.51cto.c…

十年磨一剑,可重构计算架构将引领未来芯片市场

2019 年 6 月,AI 芯片创业公司清微智能首款可重构计算架构 AI 芯片实现量产的消息在业内迅速传开,可重构计算架构芯片再次引发一波讨论的热潮。经历过十多年的技术积累,这枚小小的芯片在全球芯片市场中开启了全新的篇章。时光倒流&#xff0c…

PyTorch中nn.Module类中__call__方法介绍

在PyTorch源码的torch/nn/modules/module.py文件中,有一条__call__语句和一条forward语句,如下: __call__ : Callable[…, Any] _call_impl forward: Callable[…, Any] _forward_unimplemented 在PyTorch中nn.Module类是所有神经网络模块…

压缩和归档及vi的使用

1.cat(more less head tail) /etc/passwd :查看/etc/passwd文件内容2.head -13 /etc/passwd | tail -1 :只查看/etc/passwd文件中第13行3.wc -l /etc/passwd :统计/etc/passwd文件有多少行4.grep -v "^#" /etc/inittab | grep -v &…

看到抖音上Python工程师晒得工资条,我沉默了......

我是个抖音中毒者闲来无事就喜欢刷抖音最近刷到了一个Python工程师的工资条然后我默默的打开看了然后我默默的关闭了我想这个工资算下来好像也不算高我就去其他渠道搜索了一下相关的Python工作岗位的工资好吧,都是比这个工资更高的emmm.....此时我很沉默后悔为什么我…

windows上通过cmake-gui生成pytorch工程

在Windows下通过cmake-gui.exe生成不带cuda的Torch.sln工程操作步骤:PyTorch版本使用1.8.1。首先可以先通过打开cmake-gui.exe,指定pytorch源代码目录和生成vs2017工程的位置;然后点击Configure,选中”Visual Studio 15 2017 Win6…

RequisitePro SQL SERVER数据库的配置

安装好Rational RequisitePro后,新建立一个project时,要选择库的类型,可以支持MS Access、SQL SERVER和oralce首先在SQL SERVER里新建一数据库名为”RequisitePro”然后在查询分析器里执行其自带的脚本文件,位置在《Rational安装目…

yum三种方法

RHEL5中实现各种服务的准备条件:(一)、制作YUM本地源:YUM简介:YUM是Yellow dog Updater Modified的简称,yum是软件的仓库,它可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header&…

损失函数之Cross-Entropy介绍及C++实现

在深度学习中,损失函数用来评估模型的预测值与真实值之间的差异程度,是模型对数据拟合程度的反映,拟合的越差,损失函数的值越大;反之,损失函数越小,说明模型的预测值就越接近真实值,…

C语言应用于LR中-如何得到数组长度

C语言没有提供获取数组长度的函数,最起码我不知道,所以编写了一个函数取数组的长度,调试成功,大家可以试试。另外也可以用sizeof(a)/4来取得整型数组的长度,因为整型占4个字节。效果相同。#include "web_api.h&qu…