开发者社区 > 云原生 > Serverless > 正文

函数计算,请问swoole_http_server模式下,静态资源的路径怎么配置??

函数计算,请问swoole_http_server模式下,静态资源的路径怎么配置??

展开
收起
巴拉巴拉巴拉 2023-07-22 10:43:40 120 0
3 条回答
写回答
取消 提交回答
  • 在函数计算中,使用 Swoole 的 swoole_http_server 模式时,配置静态资源的路径可以通过以下几种方式实现:

    1. 使用绝对路径:在代码中直接使用绝对路径来指定静态资源的位置。例如,如果你的静态资源在 /var/www/html 目录下,可以直接在代码中指定路径为 /var/www/html/static

    2. 使用相对路径:如果你的静态资源与函数计算代码位于同一目录或子目录下,可以使用相对路径来指定静态资源的位置。例如,如果你的静态资源位于函数计算代码的 static 文件夹下,可以指定路径为 ./static

    3. 使用环境变量:函数计算提供了环境变量(如 FC_ROOT_DIR),可以在代码中读取该变量来构建静态资源路径。例如,假设你将静态资源放置在函数计算的根目录下的 static 文件夹中,你可以通过读取环境变量 FC_ROOT_DIR,并将其与静态资源文件夹名进行拼接来得到完整的路径。

    需要注意的是,在函数计算中,你需要确保静态资源文件夹和其中的文件在函数计算部署包中。你可以在部署时将静态资源文件夹添加到函数计算部署包中,以便在运行时访问这些文件。

    另外,函数计算还支持通过配置自定义域名和 CDN 来访问静态资源,以提供更好的性能和缓存策略。你可以参考函数计算文档中关于自定义域名和 CDN 配置的说明来进行设置。

    2023-07-23 21:38:25
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    指定静态资源目录
    使用set([ 'document_root' , '路径' ]);方法指定静态资源目录:

    php
    Copy
    use Swoole\Http\Server;

    $serv = new Server("0.0.0.0", 9501);

    // 指定静态资源路径
    $serv->set(['document_root' => '/www']);

    $serv->on('request', function (...) {
    ...
    });

    $serv->start();
    此时请求/static.css时,将从/www/static.css获取资源。

    指定全路径
    直接指定静态资源的绝对路径:

    php
    Copy
    $serv->on('request', function (Request $request, Response $response) {
    if ($request->server['request_uri'] == '/static.css') {
    $response->header('Content-Type', 'text/css');
    $response->send(file_get_contents('/www/static.css));
    }
    });
    在请求处理函数中,通过$request->server['request_uri'] 判断是静态资源请求,然后通过绝对路径读取文件内容返回。

    函数计算也支持类似Nginx的alias匹配模式。

    以上2种方式都可以在函数计算Swoole HTTP Server中配置静态资源路径。

    2023-07-23 17:48:10
    赞同 展开评论 打赏
  • fc里代码的位置是 /code 目录。如果你的静态资源在代码包里,就可以去/code目录下找找

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-07-22 20:20:43
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载