1+ import trim from 'lodash/trim' ;
12import { dirname } from 'path' ;
23
34import { basename , isAbsolutePath } from '.' ;
@@ -245,7 +246,7 @@ export function selectMediaFolder<EF extends BaseField>(
245246 } else if ( hasCustomFolder ( 'media_folder' , collection , entryMap ?. slug , field ) ) {
246247 const folder = evaluateFolder ( 'media_folder' , config , collection ! , entryMap , field ) ;
247248 if ( folder . startsWith ( '/' ) ) {
248- mediaFolder = folder ;
249+ mediaFolder = folder . replace ( / ^ [ / ] * / g , '' ) ;
249250 } else {
250251 const entryPath = entryMap ?. path ;
251252 mediaFolder = entryPath
@@ -258,7 +259,7 @@ export function selectMediaFolder<EF extends BaseField>(
258259 }
259260 }
260261
261- return mediaFolder ;
262+ return trim ( mediaFolder , '/' ) ;
262263}
263264
264265export function selectMediaFilePublicPath < EF extends BaseField > (
@@ -296,7 +297,7 @@ export function selectMediaFilePublicPath<EF extends BaseField>(
296297 const mediaFolder = customMediaFolder
297298 ? evaluateFolder ( 'media_folder' , config , collection ! , entryMap , field )
298299 : config [ 'media_folder' ] ;
299- selectedPublicFolder = currentFolder . replace ( mediaFolder ! , publicFolder ) ;
300+ selectedPublicFolder = trim ( currentFolder , '/' ) . replace ( trim ( mediaFolder ! , '/' ) , publicFolder ) ;
300301 }
301302
302303 const finalPublicPath = joinUrlPath ( selectedPublicFolder , basename ( mediaPath ) ) ;
@@ -321,14 +322,17 @@ export function selectMediaFilePath(
321322
322323 let mediaFolder = selectMediaFolder ( config , collection , entryMap , field , currentFolder ) ;
323324 if ( ! currentFolder ) {
324- let publicFolder = config [ 'public_folder' ] ?? mediaFolder ;
325- let mediaPathDir = dirname ( mediaPath ) ;
325+ let publicFolder = trim ( config [ 'public_folder' ] ?? mediaFolder , '/' ) ;
326+ let mediaPathDir = trim ( dirname ( mediaPath ) , '/' ) ;
326327 if ( mediaPathDir === '.' ) {
327328 mediaPathDir = '' ;
328329 }
329330
330331 if ( hasCustomFolder ( 'public_folder' , collection , entryMap ?. slug , field ) ) {
331- publicFolder = evaluateFolder ( 'public_folder' , config , collection ! , entryMap , field ) ;
332+ publicFolder = trim (
333+ evaluateFolder ( 'public_folder' , config , collection ! , entryMap , field ) ,
334+ '/' ,
335+ ) ;
332336 }
333337
334338 if ( mediaPathDir . startsWith ( publicFolder ) && mediaPathDir != mediaFolder ) {
0 commit comments