You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为API Platform Swagger文档Bundle资源禁用文件版本控制

解决API Platform文档资源在Webpack Encore版本控制下的路径错误

方案1:通过Symfony Asset配置排除API Platform资源

编辑config/packages/framework.yaml,添加Asset包配置,对API Platform的资源路径禁用版本控制:

framework:
    assets:
        packages:
            api_platform_assets:
                version_strategy: Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy

之后在API Platform的模板中指定使用这个包即可,若不想修改模板,可结合方案2直接在模板层面跳过版本控制。

方案2:重写API Platform文档模板,强制跳过版本控制

  1. 复制API Platform的Swagger UI模板到项目本地目录:
    cp vendor/api-platform/core/src/Bridge/Symfony/Bundle/Resources/views/SwaggerUi/index.html.twig templates/bundles/ApiPlatformBundle/SwaggerUi/index.html.twig
    
  2. 打开复制后的模板,修改所有asset()调用,添加version=false参数,示例:
    <!-- 原代码 -->
    <link rel="stylesheet" href="{{ asset('bundles/apiplatform/swagger-ui/swagger-ui.css') }}">
    <!-- 修改后 -->
    <link rel="stylesheet" href="{{ asset('bundles/apiplatform/swagger-ui/swagger-ui.css', version=false) }}">
    
    对模板中所有CSS、JS资源的asset()调用做同样修改,即可让这些资源路径不再被添加版本哈希。

方案3:调整Webpack Encore配置(不推荐)

API Platform的资源是通过Composer直接复制到public/bundles/api-platform的,并非Webpack Encore打包生成,因此无需让Encore处理这些文件。但该方案无法解决Symfony Asset组件自动添加版本号的问题,优先推荐前两个方案。

内容的提问来源于stack exchange,提问作者Unlimited

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:40:06