我有一个基本的PHP页面通过Varnish加载,其中包含一个ESI回调服务器来设置cookie.cookie是通过域访问等设置的,但是当通过ESI调用时,cookie永远不会被设置.如果直接访问ESI包含路径,则cookie设置没有问题.我甚至设置了我的Varnish配置永远不会缓存任何东西,认为VCL可能会杀死cookie.
这个...
<esi:include src="/init.php?<?=http_build_query($_GET); ?>"></esi:include>
Run Code Online (Sandbox Code Playgroud)
......包括这个......
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
setcookie('superman', 'clark kent', 0, '/', '.whatever.com');
?>
Run Code Online (Sandbox Code Playgroud)
我是Varnish和ESI的新手,所以我开始怀疑这是否是一个已知的限制(使用ESI或使用Varnish的ESI实现),但我在网上找不到任何关于我的问题的讨论.
我正在使用Compojure在Clojure中创建一个静态文件服务器,我一直在从文件系统读取图像并通过Compojure路径显示该图像.
不幸的是,slurp并不能很好地处理二进制数据,而且我已经尝试过这100种不同的方法,但这是我最近的失败尝试:
(defn image-output [filepath]
(try
(let [contents (apply str (with-open [rdr (io/reader filepath)]
(into #{} (line-seq rdr))))]
{
:status 200
:headers
{
"Content-Type" "image/jpeg",
"Content-Length" "",
"Cache-Control" "",
"Expires" ""
}
:body contents
}))
(catch Exception e {:status 404})))
(defn endpoint_view [params]
(if (contains? params :bucket)
(image-output (join "/" [data_path (:bucket params) (:dir params) (:filename params)]))))
(defroutes main-routes
(GET "/view/:bucket/:dir/:filename" {params :params} (endpoint_view params))
(route/files "/")
(route/resources "/s" {:root "./public/s"})
(route/not-found "Page not found"))
Run Code Online (Sandbox Code Playgroud)
看起来这个当前的尝试遭遇与使用slurp相同的命运,在那里我可以回显内容字符串以及它和编码的字符串,但是当我将内容类型更改为image/jpeg时,它是一个破碎的图像.
我昨天花了整整一天时间进行谷歌搜索,但是没有一个例子能够达到同样的目标,虽然它们帮助我更多地了解了Java IO,但是它们还不够清晰,无法帮助我到达我需要去的地方,或者生产了我已经得到了相同的结果(例子:在Clojure中将文件内容读入集合的最佳方法). …
我有一个谷歌Chrome打包应用程序,并使用webview标记加载远程页面(我无法控制).该远程页面正在尝试请求通知权限,并且权限请求似乎没有冒泡到包装Chrome应用程序.
我正在使用以下(过度宽松)代码来允许来自webview的所有权限请求(并回显所有控制台输出):
webview.addEventListener('permissionrequest', function(e) {
console.log("webview requested " + e.permission);
e.request.allow();
});
webview.addEventListener('consolemessage', function(e) {
console.log('From webview: ', e.message);
});
Run Code Online (Sandbox Code Playgroud)
我在网上找不到确认,但我认为网页浏览中尚不允许通知权限.如果我们假设是这种情况,是否还有其他方法可以强制Webview的网站通知权限不会被CORS阻止?
我试图从复杂的列表结构中提取值.
鉴于这样的事情:
[{:a "whatever" :b [:c "foo"]} :e {:f "boo"} :g {:h [:i 62281]}]
Run Code Online (Sandbox Code Playgroud)
我想得到:
["whatever" "foo" "boo" 62281]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我只是到了这一步:
((62281) nil (boo) nil whatever foo)
Run Code Online (Sandbox Code Playgroud)
这是代码:
(defn get-values [params]
(apply conj
(map (fn [part]
(if (not (keyword? part))
(map (fn [v]
(if (vector? v)
(last v)
v))
(vals part))))
params)))
Run Code Online (Sandbox Code Playgroud)