Browse Source

fix: fix gatsby bug https://github.com/gatsbyjs/gatsby/issues/21462

代强 2 years ago
parent
commit
08fa65b30f
2 changed files with 10 additions and 1 deletions
  1. 1 0
      gatsby-node.js
  2. 9 1
      src/templates/postTemplate.js

+ 1 - 0
gatsby-node.js

@@ -170,6 +170,7 @@ exports.onCreateWebpackConfig = ({ stage, rules, loaders, plugins, actions }) =>
             'process.env.SEMI_SITE_HEADER': JSON.stringify(process.env.SEMI_SITE_HEADER),
             'process.env.SEMI_SITE_HEADER': JSON.stringify(process.env.SEMI_SITE_HEADER),
             'process.env.SEMI_SITE_BANNER': JSON.stringify(process.env.SEMI_SITE_BANNER),
             'process.env.SEMI_SITE_BANNER': JSON.stringify(process.env.SEMI_SITE_BANNER),
             'process.env.D2C_URL': JSON.stringify(process.env.D2C_URL),
             'process.env.D2C_URL': JSON.stringify(process.env.D2C_URL),
+            "ASSET_PREFIX":JSON.stringify((process.env['CDN_OUTER_CN'] || process.env['CDN_INNER_CN']) ? `https://${(process.env['CDN_OUTER_CN'] || process.env['CDN_INNER_CN'])}/${process.env['CDN_PATH_PREFIX']}`: ""),
         })],
         })],
     });
     });
 };
 };

+ 9 - 1
src/templates/postTemplate.js

@@ -413,8 +413,16 @@ const components = {
                 </a>
                 </a>
             );
             );
         } else {
         } else {
+            const assetPrefix = ASSET_PREFIX.replace("//","/")
+            const assetPrefixStart = props.href.indexOf(assetPrefix)
+            let href = props.href;
+            if(assetPrefixStart!==-1){
+                const assetPrefixEnd = assetPrefixStart + assetPrefix.length
+                href = props.href.slice(assetPrefixEnd)
+            }
+
             return (
             return (
-                <Link className="md markdown gatsby-a" to={props.href} target={props.target}>
+                <Link className="md markdown gatsby-a" to={href} target={props.target}>
                     {props.children}
                     {props.children}
                 </Link>
                 </Link>
             );
             );