diff --git a/packages/netlify-cms-core/src/actions/entries.ts b/packages/netlify-cms-core/src/actions/entries.ts index 5c2f7abc..f8eac767 100644 --- a/packages/netlify-cms-core/src/actions/entries.ts +++ b/packages/netlify-cms-core/src/actions/entries.ts @@ -290,8 +290,17 @@ export function retrieveLocalBackup(collection: Collection, slug: string) { if (entry) { // load assets from backup const mediaFiles = entry.mediaFiles || []; - const assetProxies: AssetProxy[] = mediaFiles.map(file => - createAssetProxy({ path: file.path, file: file.file, url: file.url }), + const assetProxies: AssetProxy[] = await Promise.all( + mediaFiles.map(file => { + if (file.file || file.url) { + return createAssetProxy({ path: file.path, file: file.file, url: file.url }); + } else { + return getAsset({ collection, entry: fromJS(entry), path: file.path })( + dispatch, + getState, + ); + } + }), ); dispatch(addAssets(assetProxies)); diff --git a/packages/netlify-cms-core/src/backend.ts b/packages/netlify-cms-core/src/backend.ts index 67af413d..047640ef 100644 --- a/packages/netlify-cms-core/src/backend.ts +++ b/packages/netlify-cms-core/src/backend.ts @@ -450,7 +450,8 @@ export class Backend { // make sure to serialize the file if (file.url?.startsWith('blob:')) { const blob = await fetch(file.url as string).then(res => res.blob()); - return { ...file, file: new File([blob], file.name) }; + const options = file.name.match(/.svg$/) ? { type: 'image/svg+xml' } : {}; + return { ...file, file: new File([blob], file.name, options) }; } return file; }),