我正在尝试将.ipa文件发布到我们的apache web服务器上,以便我们的beta测试人员下载.目前我在.htaccess中使用以下行来提供文件:
AddType application/octet-stream .ipa
Run Code Online (Sandbox Code Playgroud)
这在Safari和Firefox中运行良好,但在IE中,.ipa扩展名被删除,而是替换为.zip.因此,IE用户将获得MyApp.zip而不是MyApp.ipa.
我知道我可以在将它们放到服务器上之前将所有.ipa压缩起来,然后我就不必处理任何这些了,但是如果有一个更优雅的解决方案服务器,我想避免这个额外的步骤-侧.
或者更确切地说,是否可以简单地阻止IE更改文件扩展名?
我需要以一种不同寻常的格式为客户输出一些JSON.我的应用程序是用Rails 5编写的.
期望的JSON:
{
"key": "\/Date(0000000000000)\/"
}
Run Code Online (Sandbox Code Playgroud)
时间戳值需要\/在字符串的开头和结尾都有.据我所知,这似乎是.NET服务中常用的一种格式.我试图让斜线正确输出.
我通过单个控制器操作将问题简化为vanilla Rails 5应用程序.到目前为止,我能想到的逃逸的所有排列都失败了.
def index
render json: {
a: '\/Date(0000000000000)\/',
b: "\/Date(0000000000000)\/",
c: '\\/Date(0000000000000)\\/',
d: "\\/Date(0000000000000)\\/"
}
end
Run Code Online (Sandbox Code Playgroud)
其中输出如下:
{
"a": "\\/Date(0000000000000)\\/",
"b": "/Date(0000000000000)/",
"c": "\\/Date(0000000000000)\\/",
"d": "\\/Date(0000000000000)\\/"
}
Run Code Online (Sandbox Code Playgroud)
为了便于讨论,假设格式不能改变,因为它是由第三方控制的.
我已经向Github上传了一个测试应用程序来演示这个问题.https://github.com/gregawoods/test_app_ignore_me
我在Apple的示例代码中注意到它们通常在CGBitmapContextCreate的bytesPerRow参数中提供值0.例如,这来自Reflection示例项目.
CGContextRef gradientBitmapContext = CGBitmapContextCreate(NULL, pixelsWide, pixelsHigh,
8, 0, colorSpace, kCGImageAlphaNone);
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很奇怪,因为我总是把图像宽度乘以每个像素的字节数.我尝试将零交换到我自己的代码中并进行测试.果然,它仍然有效.
size_t bitsPerComponent = 8;
size_t bytesPerPixel = 4;
size_t bytesPerRow = reflectionWidth * bytesPerPixel;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL,
reflectionWidth,
reflectionHeight,
bitsPerComponent,
0, // bytesPerRow ??
colorSpace,
kCGImageAlphaPremultipliedLast);
Run Code Online (Sandbox Code Playgroud)
根据文档,bytesPerRow应该是"每行位图使用的内存字节数".
那么这笔交易是什么?我何时可以提供零,何时必须计算确切的值?以某种方式做到这一点有什么性能影响吗?
我已经实现了Omniauth和Koala7宝石,以便将我的应用程序与Facebook集成.除了使用自定义对象发布自定义操作的一个小问题外,一切都运行良好.
问题是我的对象url应该是新创建的帖子的显示页面,例如/ posts/1.为了使这个页面被识别为facebook对象,我需要将facebook元标记放在show.html.erb之上,如下所示:
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# sdff: http://ogp.me/ns/fb/sdff#">
<meta property="fb:app_id" content="myid" />
<meta property="og:type" content="sdff:post" />
<meta property="og:url" content="<%= "http://sdff.herokuapp.com" + post_path(@post) %>" />
<meta property="og:title" content="Sample" />
<meta property="og:image" content="https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png" />
</head>
Run Code Online (Sandbox Code Playgroud)
问题是facebook 对象调试器将其识别为type:webpage而不是type:post.我认为这是因为/layouts/application.html.erb中已经存在默认的head标记,如下所示:
<head>
<title>sdff</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
Run Code Online (Sandbox Code Playgroud)
我假设这是因为对象调试器特别指出:
身体中的元标签:你有你的标签.这可能是因为您的格式错误并且它们在解析树中降低了,或者您不小心将Open Graph标记放在了错误的位置.无论哪种方式,您都需要在标签可用之前修复它.
那么我该如何解决这个问题呢?我需要将facebook元标记放在我的脑中show.html.erb,但页面本身已经是整个应用程序布局的一部分.