小编Chr*_*own的帖子

使用<base>时,使锚链接指向当前页面

当我使用html <base>标记为页面上的所有相对链接定义基本URL时,锚链接也直接引用基本URL.有没有办法设置基本URL仍然允许锚链接引用当前打开的页面?

例如,如果我有一个页面http://example.com/foo/:


目前的行为:

<base href="http://example.com/" />
<a href="bar/">bar</a> <!-- Links to "http://example.com/bar/" -->
<a href="#baz">baz</a> <!-- Links to "http://example.com/#baz" -->
Run Code Online (Sandbox Code Playgroud)

期望的行为:

<base href="http://example.com/" />
<a href="bar/">bar</a> <!-- Links to "http://example.com/bar/" -->
<a href="#baz">baz</a> <!-- Links to "http://example.com/foo/#baz" -->
Run Code Online (Sandbox Code Playgroud)

html href

46
推荐指数
3
解决办法
2万
查看次数

服务器使用Flask/Redis发送事件:多个客户端如何查看流?

我有多个客户端尝试连接到服务器发送的事件流/stream.这适用于单个客户端,但尝试连接任何其他客户端会导致新客户端无限期地阻塞等待数据.如果我发送更多数据,它只会发送给第一个客户端,而不会发送给其他客户端.

这是一个小片段,说明了我的问题:

import flask
import time

app = flask.Flask(__name__)

def event_stream():
    for i in xrange(9999):
        yield "data: %d\n\n" % i
        time.sleep(1)

@app.route("/stream", methods=[ "GET" ])
def stream():
    return flask.Response(
        event_stream(),
        mimetype="text/event-stream"
    )
Run Code Online (Sandbox Code Playgroud)

然后我运行它gunicorn --worker-class=gevent -w 4 -t 99999 app:app.它适用于单个客户端,但任何其他客户端在发布时都会被阻止GET /stream.

阻止的原因是什么,我该如何解决?

我调试了一点,得到了一些奇怪的结果.如果我执行此过程,则会发生以下情况:

  • 启动客户端1(仅客户端1接收数据)
  • 启动客户端2(仅客户端1接收数据)
  • 启动客户端3(仅客户端1接收数据)
  • 启动客户端4(仅客户端1接收数据)
  • 重启客户端1(所有4个客户端突然开始同时接收数据)

python blocking flask server-sent-events

9
推荐指数
1
解决办法
1921
查看次数

标签 统计

blocking ×1

flask ×1

href ×1

html ×1

python ×1

server-sent-events ×1