@@ -12,7 +12,8 @@ function uploadcareLoader({ src, width, quality }) {
1212 ? ( 0 , helpers_1 . generateDefaultProxyEndpoint ) ( customProxyDomain )
1313 : null ;
1414 const proxyEndpoint = customProxyEndpoint || ( 0 , helpers_1 . generateDefaultProxyEndpoint ) ( publicKey ) ;
15- const root = ( 0 , helpers_1 . trimTrailingSlash ) ( proxyEndpoint ) ;
15+ const basePath = ( 0 , helpers_1 . trimTrailingSlash ) ( process . env . NEXT_PUBLIC_UPLOADCARE_APP_BASE_PATH || '' ) ;
16+ const proxy = ( 0 , helpers_1 . trimTrailingSlash ) ( proxyEndpoint ) ;
1617 const isOnCdn = ( 0 , helpers_1 . isCdnUrl ) ( src , cdnDomain ) ;
1718 if ( ! ( 0 , helpers_1 . isProduction ) ( ) && ! isOnCdn ) {
1819 const isPublicKeySet = ! ( 0 , helpers_1 . isDotenvParamEmpty ) ( publicKey ) ;
@@ -21,15 +22,22 @@ function uploadcareLoader({ src, width, quality }) {
2122 throw new Error ( `Both NEXT_PUBLIC_UPLOADCARE_PUBLIC_KEY and NEXT_PUBLIC_UPLOADCARE_CUSTOM_PROXY_DOMAIN are not set. Please set either one.` ) ;
2223 }
2324 if ( src . startsWith ( '/' ) ) {
24- throw new Error ( `Failed to parse " ${ src } " in "uploadcareLoader", Uploadcare loader doesn't support relative images.` ) ;
25+ return src ;
2526 }
2627 }
28+ // Process local images in Production.
29+ if ( ( 0 , helpers_1 . isProduction ) ( ) && ! isOnCdn && src . startsWith ( '/' ) ) {
30+ const isBasePathSet = ! ( 0 , helpers_1 . isDotenvParamEmpty ) ( basePath ) ;
31+ if ( ! isBasePathSet ) {
32+ return src ;
33+ }
34+ return `${ basePath } ${ src } ` ;
35+ }
2736 const filename = ( 0 , helpers_1 . getFilename ) ( src ) ;
2837 const extension = ( 0 , helpers_1 . getExtension ) ( filename ) ;
2938 // Some extensions are not processed by Uploadcare, e.g. SVG.
3039 if ( constants_1 . NOT_PROCESSED_EXTENSIONS . includes ( extension ) ) {
31- // @todo : Test non-CDN urls.
32- return isOnCdn ? src : `${ root } ${ src } ` ;
40+ return isOnCdn ? src : `${ basePath } ${ src } ` ;
3341 }
3442 // Demo: https://ucarecdn.com/a6f8abc8-f92e-460a-b7a1-c5cd70a18cdb/-/format/auto/-/resize/300x/vercel.png
3543 const userParams = ( 0 , helpers_1 . parseUserParamsString ) ( userParamsString ) ;
@@ -48,6 +56,6 @@ function uploadcareLoader({ src, width, quality }) {
4856 const withoutFilename = src . slice ( 0 , src . lastIndexOf ( '/' ) ) ;
4957 return `${ withoutFilename } ${ apiParamsString } ${ filename } ` ;
5058 }
51- return `${ root } ${ apiParamsString } ${ src } ` ;
59+ return `${ proxy } ${ apiParamsString } ${ src } ` ;
5260}
5361exports . uploadcareLoader = uploadcareLoader ;
0 commit comments