如何在Cloud Foundry Staticfile Buildpack中配置CORS策略以添加缺少的';访问控制允许原点';标题

如何在Cloud Foundry Staticfile Buildpack中配置CORS策略以添加缺少的';访问控制允许原点';标题,cors,cloud-foundry,static-files,Cors,Cloud Foundry,Static Files,当我尝试使用访问Cloud Foundry上托管的JavaScript文件时,我的浏览器拒绝加载该文件,并在控制台中显示错误消息: CORS策略已阻止从源“…”访问“…”处的脚本:请求的资源上不存在“Access Control Allow origin”标头 如何在Cloud Foundry Staticfile Buildpack中配置跨源资源共享(CORS)?要使用Staticfile Buildpack设置CORS: 创建一个名为Staticfile的文件,其内容如下: root: p

当我尝试使用访问Cloud Foundry上托管的JavaScript文件时,我的浏览器拒绝加载该文件,并在控制台中显示错误消息:

CORS策略已阻止从源“…”访问“…”处的脚本:请求的资源上不存在“Access Control Allow origin”标头

如何在Cloud Foundry Staticfile Buildpack中配置跨源资源共享(CORS)?

要使用Staticfile Buildpack设置CORS:
  • 创建一个名为
    Staticfile
    的文件,其内容如下:

     root: public
     location_include: includes/*.conf   
    
      add_header 'Access-Control-Allow-Origin' '*';
    
  • 确保您希望应用程序提供的文件位于
    public
    文件夹中

  • 创建包含以下内容的文件
    nginx/conf/includes/headers.conf
    (及其父文件夹):

     root: public
     location_include: includes/*.conf   
    
      add_header 'Access-Control-Allow-Origin' '*';
    
  • 就这样!在下一次
    cf推送之后
    ,将设置CORS标题

    要了解更多信息,请参见官方代码示例

    解释 截至年月日:

    如果您创建一个名为
    Staticfile
    的文件,并将其定位在应用程序的构建目录中,则Cloud Foundry会在推送应用程序时自动使用Staticfile buildpack

    (这意味着您不需要在
    manifest.yml
    中指定
    静态文件\u buildpack

    然后按照下面的说明进行操作

    自定义位置允许您使用其他指令指定自定义位置定义

    要自定义NGINX配置文件的位置块,请执行以下步骤

  • 设置一个可选的
    根目录。
    location\u include
    属性仅与可选的
    root
    一起使用
  • 使用位置范围的NGINX指令创建文件。请参见以下示例,该示例会导致站点的访问者接收
    X-MySiteName
    HTTP头:
    • 文件:
      nginx/conf/includes/custom_header.conf
    • 内容:
      add_头X-MySiteName-BestSiteEver
  • location\u include
    变量设置为上一步中文件的路径。此路径相对于
    nginx/conf

    例如:

     root: public
     location_include: includes/*.conf
    

  • 一段历史-通过这个故事,它被实现到了静态构建包中-

    针对BuildPack团队提出了类似的问题-

    请参阅以下示例应用程序,了解如何配置任何其他自定义标题-


    然后,您还可以添加特定于CORS的响应头(允许的主机和允许的方法)

    看起来您的答案在位置末尾有输入错误,还有其他“%”无法使用。相反,它应该只是“location\u include:includes/*.conf”。这很有效。我一直在找这个。非常感谢。谢谢@KBJ,答案已相应编辑!