× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

document_root

此功能较为简易, 请勿在公网环境直接使用

配置静态文件根目录,与enable_static_handler配合使用。

$server->set([
    'document_root' => '/data/webroot/example.com', // v4.4.0以下版本, 此处必须为绝对路径
    'enable_static_handler' => true,
]);

设置document_root并设置enable_static_handlertrue后,底层收到Http请求会先判断document_root路径下是否存在此文件,如果存在会直接发送文件内容给客户端,不再触发onRequest回调。

1.9.17或更高版本可用
使用静态文件处理特性时,应当将动态PHP代码和静态文件进行隔离,静态文件存放到特定的目录


  • 断言

    以后可以不用Nginx 了

  • 雾

    这个怎么用 我配置了但没反应,我的swoole版本是2.0.7

  • ywjdlq

    配置后修改文件内容, 浏览器访问发现内容不会改变, 重启进程也一样

  •  多次一举

    难道客户端请求index.php文件也发送给客户端吗?这里是否有设置可以限制某些类型的文件(如*.php)仍触发OnReuest?

  • 桄欣

    1.9.x和2.0.x是两个大的版本分支,2.0.7比1.9.17版本还早

  • 飞雪寒

    在1.9.21版本下,配置静态资源路径后,似乎没有对.ico文件进行图片支持,直接访问/favicon.ico 会变成文件下载

  • 徐赞

    我的版本号是1.10.2 设置了还是跑了request 回调函数? 没跑静态资源

  • 徐赞

    可以了, 感觉是缓存问题

  • 徐赞

    在1.9.17或更高版本可用

  • JiangZe锋

    我的版本号是2.1.3 设置了还是跑了request 回调函数? 没跑静态资源

  • 大锤

    这东西不可能替代nginx

  • 纪很懒

    我的环境是windows装的docker 设置了还是一样跑request 求大神解答下

  • 过期的奶酪

    不用nginx如何配置虚拟域名?

  • 过期的奶酪

    设置了document_root 就算有文件,也会执行onRequest回调的吧。 我set cookie照样能执行。 只是end方法没执行而已。

  • 小熊先生

    设置document_root并设置enable_static_handler为true后,底层收到Http请求会先判断document_root路径下是否存在此文件,如果存在会直接发送文件内容给客户端,不再触发onRequest回调,如果这里不触发回调,绝大多数就是你的swoole版本问题,要编译成最新的版本,就ok,,这个坑,刚刚遇到。

  • sishen007

    配置后修改静态文件内容, 浏览器访问发现内容不会改变, 重启进程也一样 有谁遇到过这个问题吗?只有修改文件名后才能使访问内容改变? 求解。。。。

  • 羡慕嫉妒恨

    PHP 7.3.3 Swoole 4.3.1 设置了enable_static_handler=true,和document_root发现还是走到onRequest

  • woody

    Swoole 4.3.1 设置了enable_static_handler=true,和document_root发现还是走到onRequest

    一样的问题

  • 勿忘.

    Swoole 4.3.1 设置了enable_static_handler=true,和document_root发现还是走到onRequest 一样的问题

  • 郭大侠

    Swoole 4.4, 设置好了静态配置 可以正常访问 网页 图片 样式等静态图片, 但是如果是*.APK 就会跳到onRequest , 好像跟格式有关系, 图片的文件名太长了也会跳到onRequest

  • 风行天下

    我也是配置了静态目录以后 发些修改目录文件怎么都不生效,即使重启进程,换端口,除非换静态文件名字才能生效

  • 乐翻天@魔法常量

    Swoole 4.3.1 设置了enable_static_handler=true,和document_root发现还是走到onRequest 求解决办法