소스 검색

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

代强 2 년 전
부모
커밋
08fa65b30f
2개의 변경된 파일10개의 추가작업 그리고 1개의 파일을 삭제
  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_BANNER': JSON.stringify(process.env.SEMI_SITE_BANNER),
             '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>
             );
         } 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 (
-                <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}
                 </Link>
             );