91³Ô¹ÏÍø

Watch CBS News

Cross restored to Notre Dame cathedral more than 5 years after fire

The cross at the apse of Notre-Dame de Paris, which survived the devastating 2019 fire, was reinstalled atop the cathedral's framework Friday after a meticulous restoration by artistic ironworkers from Normandy.

The imposing cross, spanning 40 feet and weighing about 3,300 pounds, is the only element of the choir roof that resisted the flames.

"The cross fell really early in the fire," Vincent Combe, project manager for Metal Roofing Renovation, told CBS News. "So we were really lucky because the cross didn't burn a lot, she just fell just…it's a miracle."

Notre Dame cross restored
Workers put back in place the cross of the apse of the Notre-Dame de Paris cathedral, in Paris on May 24, 2024. JULIEN DE ROSA/AFP via Getty Images

The cross was taken to an ironworks in Normandy for complex and delicate repairs. Architect Axelle Ponsonnet was involved in checking it could be repaired to the original 19th century design by Eugène Viollet-le-Duc.

"We were really happy to discover that we would be able to use it, and forge it again, and work with the metal that was here, because the cross was designed by Viollet-le-Duc, so it's a very important piece of Notre Dame," Ponsonnet told CBS News.

Approximately 250 companies and hundreds of craftsmen, architects, and professionals have contributed to the ongoing restoration project, aiming for the cathedral's reopening on Dec. 8, 2024.

The fire, which occurred on April 15, 2019, caused the collapse of Notre-Dame's spire and part of its roof. Five years later, the restoration has made significant progress, including the reinstallation of the spire's lead-covered needle.

The 2019 fire was a significant blow to the cathedral, a UNESCO world heritage site and a symbol of Christianity that welcomed 12 million visitors each year.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });