Apache与Nginx

之前的服务器都是随大流使用的Apache,后来在新的备份服务器上美滋滋的想着尝试一下Nginx。
结果悲剧了。常用几个开源应用的.htaccess都是默认自带Apache语法的。尝试了一下网上的翻译器,并没有什么卵用。
小众者必然会死。。

// update

经过艰苦卓绝的训练。
技能【反向代理某搜索引擎】 Get。
技能【用Nginx进行负载平衡】 Get。

Salesforce如何取得Guest User的Debug Log

// Update4 2018/04/10

Salesforce这次不仅吃书。。。连设定都吃回去了。。。
这篇文章不用看了,以后再也不用设Cookie了。一切又回到了最初的样子。
官方文档

从Winter’17开始,Guest User的Debug Log不再能通过正常渠道直接获取了。这给我们做Wechat集成的小伙伴们造成了很大的困扰。
虽然说官方文档中,介绍了在Chrome下使用插件添加Cookie的方法来激活Guest User的Debug log,但微信里是没法修改Cookie的。
不过官方提到了可以通过各种代码添加Cookie的Sample Code,尤其是Javascript,可以放到被访问的页面上。
代码只有简简单单的一句

document.cookie ="debug_logs=debug_logs;domain=.force.com";

在修改了Page之后,兴冲冲的打开了微信进行测试,发现并没有卵用。
然后切回浏览器,通过浏览器访问发现,这段Js代码加入的Cookie值与我之前用插件添加进去的值并完全不一致。
不一致的属性是“Path”,由于我的Salesforce Site是设定了Path的,所以Js代码生成的Cookie的Path也跟着变成了我设定的Path。而我用插件加入的Cookie的Path属性默认为“/”。
好,那么我们修改一下这句Js

document.cookie ="debug_logs=debug_logs;domain=.force.com;path=/";

修改完之后再试,问题解决,Debug Log乖乖出来了。
打完收工。

// Update 1

微信内置浏览器是可以使用Cookie的,不过要慎重,因为微信的内置浏览器对于Cookie的处理策略与桌面浏览器不是很一致,并且每个版本都有变动。所以不应该过度依赖于微信内置浏览器的Cookie。

// Update 2

微信的内置浏览器为X5内核,所以行为和渲染等都与Webkit内核有出入。慎重!!
另,Spring’17 开始进入倒计时的时候,发现前文提到的官方文档不见了!!但是此方法仍然有效!!到底发生了什么!!

// Update 3
对于Salesforce官方不断吃书的行为表示不满与谴责(Knowledge文章被取消了)。
然并卵,已经不是第一次吃书了,所以想参考官方文档的同学看这里

关于Lorem Ipsum

对于前端开发人员来讲,涉及到内容填充或者排版的时候,最常用的就是Lorem Ipsum文本。

标准文本内容

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

// Update 1

在Word里如果输入=Rand()会随机的生成一段文本给你当填充物,或者输入=lorem(),则是填充Lorem Ipsum。当然这两个函数都贴心的设置了可选参数,可以选择长度与段落数量等。

Salesforce不登录调用Webservice的方法

Salesforce中提供了WebService的调用方式,在系统内部使用的时候,比如通过VF上的JS,或者通过标准页面上的按钮进行调用,可以方便的实现很多功能。
同时,Salesforce中的WebService可以也以rest方式提供给第三方系统进行可控的数据交互。
但是,鉴于Salesforce的License价格虚高,并且有些第三方,例如微信后台是无法进行身份认证的时候,通过public site开放WebSerivce用rest方式调用就非常有必要了。

首先,要在Webservice的首行添加@RestResource(urlMapping=’/{your name}/*’)
之后定义好@HttpGet方法或者@HttpPost方法。

将WebService类及相关类加到Site的可访问Apex Class列表里。
准备完毕后确认site有没有设定Path。
如果是sandbox的话
https://{prefix}.{sandbox instance Name}.force.com/{path}/services/apexrest/{Name Space}/{webservice urlMapping Name}/{your paramater}
如果是Production的话,
https://{prefix}.secure.force.com/{path}/services/apexrest/{Name Space}/{webservice urlMapping Name}/{your paramater}

尤其是Name Space,曾经难倒无数英雄汉。