首页 > 解决方案 > 如何防止 gatsby 从 WordPress 下载远程文件?

问题描述

每当我运行npm run developnpm run buildgatsby 从 WordPress 下载远程文件并将它们存储在缓存中时。从缓存中提供图像和其他静态文件。

由于它每次都在下载远程文件,因此需要花费大量时间来完成下载并为应用程序提供服务。这不利于发展。

我不想要它。我只是想使用远程 URL 来呈现图像。我怎样才能做到这一点?

标签: gatsbywp-graphql

解决方案


您有很多选项可用于自定义gatsby-source-wordpress插件中的行为:

  • hardCacheMediaFiles(实验性):当设置为 时true,媒体文件将被硬缓存在 Gatsby 缓存之外,./.wordpress-cache/path/to/media/file.jpeg.这对于防止在 Gatsby 缓存自动清除时重新下载媒体文件很有用。使用此选项时,请务必 gitignorewordpress-cache项目根目录中的目录。

    用法:

    {
       resolve: `gatsby-source-wordpress`,
       options: {
         production: {
           hardCacheMediaFiles: true, // false by default
         },
       },
    }
    

    此选项不会避免从服务器下载,它会缓存图像以避免后续下载。

  • excludeByMimeTypes:允许通过它们的 mime 类型阻止下载与MediaItem节点关联的文件。

    用法:

    {
       resolve: `gatsby-source-wordpress`,
       options: {
         type: {
           MediaItem: {
             localFile: {
               excludeByMimeTypes: [`video/mp4`], // add your images format
             },
           },
         },
       },
    }
    

    此选项可能会避免下载您的图像和指定的格式

  • maxFileSizeBytes: 允许阻止下载超过特定文件大小(以字节为单位)的文件。默认为 15mb。

    用法:

    {
       resolve: `gatsby-source-wordpress`,
       options: {
         type: {
          MediaItem: {
             localFile: {
               maxFileSizeBytes: 10485760, // 10Mb. Set it to 0 to avoid downloads
             },
           },
         },
       },
    }
    

    此选项可以潜在地避免从服务器下载资产。


推荐阅读