Host website assets locally

Remove runtime dependency on external image and font CDNs so deployments remain stable and self-contained.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-26 18:10:15 +03:30
co-authored by Cursor
parent 85e61537e2
commit e664acb854
42 changed files with 90 additions and 33 deletions
+1 -2
View File
@@ -13,8 +13,7 @@ import {
import Link from "next/link";
import { InteriorFooter, InteriorHeader } from "../components/InteriorShell";
const assetBase =
"https://meshkee-templates.sas.amin.parminstorage.ir/sites/user_themes/SamanAndish_OcHaRXRqAo/assets/files";
const assetBase = "/assets";
export const metadata: Metadata = {
title: "درباره سامان اندیش | تجربه تخصصی صنعت سیم و کابل",
+1 -2
View File
@@ -18,8 +18,7 @@ import {
import Link from "next/link";
import { useState } from "react";
const assetBase =
"https://meshkee-templates.sas.amin.parminstorage.ir/sites/user_themes/SamanAndish_OcHaRXRqAo/assets/files";
const assetBase = "/assets";
const navItems = [
{ label: "صفحه اصلی", href: "/" },
+1 -2
View File
@@ -11,8 +11,7 @@ import Link from "next/link";
import { InteriorFooter, InteriorHeader } from "../components/InteriorShell";
import ContactForm from "./ContactForm";
const assetBase =
"https://meshkee-templates.sas.amin.parminstorage.ir/sites/user_themes/SamanAndish_OcHaRXRqAo/assets/files";
const assetBase = "/assets";
export const metadata: Metadata = {
title: "تماس با سامان اندیش | مشاوره ماشین‌آلات صنعتی",
+79 -11
View File
@@ -1,6 +1,74 @@
@import url("https://cdn.meshkee.com/web-builder/fonts/ravi/ravi.css");
@import url("https://cdn.meshkee.com/web-builder/fonts/montserrat/montserrat.css");
@import url("https://cdn.meshkee.com/web-builder/fonts/monoton/monoton.css");
@font-face {
font-family: "Monoton";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("/fonts/webfont-01.ttf") format("truetype");
}
@font-face {
font-family: "Montserrat";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("/fonts/webfont-02.ttf") format("truetype");
}
@font-face {
font-family: "Montserrat";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("/fonts/webfont-03.ttf") format("truetype");
}
@font-face {
font-family: "Montserrat";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("/fonts/webfont-04.ttf") format("truetype");
}
@font-face {
font-family: "Montserrat";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("/fonts/webfont-05.ttf") format("truetype");
}
@font-face {
font-family: "Vazirmatn";
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("/fonts/webfont-06.ttf") format("truetype");
}
@font-face {
font-family: "Vazirmatn";
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("/fonts/webfont-07.ttf") format("truetype");
}
@font-face {
font-family: "Vazirmatn";
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("/fonts/webfont-08.ttf") format("truetype");
}
@font-face {
font-family: "Vazirmatn";
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("/fonts/webfont-09.ttf") format("truetype");
}
:root {
--navy: #082a4e;
@@ -28,7 +96,7 @@ body {
margin: 0;
color: var(--ink);
background: var(--white);
font-family: ravi, "Tahoma", sans-serif;
font-family: Vazirmatn, "Tahoma", sans-serif;
line-height: 1.8;
overflow-x: hidden;
}
@@ -65,7 +133,7 @@ button {
.topbar {
color: rgba(255, 255, 255, 0.76);
background: var(--navy-deep);
font-family: montserrat, ravi, sans-serif;
font-family: Montserrat, Vazirmatn, sans-serif;
font-size: 11px;
letter-spacing: 0.25px;
}
@@ -87,7 +155,7 @@ button {
.topbar p {
margin: 0;
gap: 7px;
font-family: ravi, sans-serif;
font-family: Vazirmatn, sans-serif;
}
.topbar p svg {
@@ -1141,7 +1209,7 @@ button {
color: var(--white);
background:
linear-gradient(rgba(3, 25, 47, 0.93), rgba(3, 25, 47, 0.93)),
url("https://meshkee-templates.sas.amin.parminstorage.ir/sites/user_themes/SamanAndish_OcHaRXRqAo/assets/files/ZLxH2tZ4dR.jpg")
url("/assets/ZLxH2tZ4dR.jpg")
center/cover fixed;
}
@@ -1561,7 +1629,7 @@ button {
.footer__contact strong {
color: var(--white);
font-family: montserrat, ravi, sans-serif;
font-family: Montserrat, Vazirmatn, sans-serif;
font-size: 11px;
font-weight: 500;
}
@@ -2287,7 +2355,7 @@ button {
.about-stats strong {
color: #ff8a9a;
font-family: montserrat, ravi, sans-serif;
font-family: Montserrat, Vazirmatn, sans-serif;
font-size: 38px;
line-height: 1.2;
}
@@ -2486,7 +2554,7 @@ button {
color: var(--white);
background:
linear-gradient(90deg, rgba(226, 36, 61, 0.96), rgba(188, 23, 45, 0.94)),
url("https://meshkee-templates.sas.amin.parminstorage.ir/sites/user_themes/SamanAndish_OcHaRXRqAo/assets/files/i8SsUDDMLv.jpg")
url("/assets/i8SsUDDMLv.jpg")
center/cover;
}
@@ -2570,7 +2638,7 @@ button {
.contact-info__grid strong {
color: var(--navy);
font-family: montserrat, ravi, sans-serif;
font-family: Montserrat, Vazirmatn, sans-serif;
font-size: 14px;
}
+8 -16
View File
@@ -28,8 +28,7 @@ import {
import type { FormEvent } from "react";
import { useEffect, useMemo, useRef, useState } from "react";
const assetBase =
"https://meshkee-templates.sas.amin.parminstorage.ir/sites/user_themes/SamanAndish_OcHaRXRqAo/assets/files";
const assetBase = "/assets";
const heroSlides = [
{
@@ -79,8 +78,7 @@ const products = [
title: "دستگاه کوادینگ ۶۰۰ میلی‌متر",
en: "600mm Quadding Machine | QUA-21 | LESMO",
category: "دستگاه تابنده",
image:
"https://meshkee-storage.sas.amin.parminstorage.ir/saman_andish_2474/b597976c3ce6012f3a07e9f5c71a3c8c/conversions/WhatsApp-Image-2021-11-13-at-16.48.24-thumbnail.jpg",
image: `${assetBase}/product-quadding.jpg`,
code: "LESMO / QUA-21",
},
{
@@ -88,8 +86,7 @@ const products = [
title: "بریدر ۱۶ کریر",
en: "16 Carriers Braider | 16N4 | SPIRKA",
category: "دستگاه بافنده",
image:
"https://meshkee-storage.sas.amin.parminstorage.ir/saman_andish_2474/24128c84241513596a1be1534a791c3b/conversions/IMG_20210911_125416-thumbnail.jpg",
image: `${assetBase}/product-braider.jpg`,
code: "SPIRKA / 16N4",
},
{
@@ -97,8 +94,7 @@ const products = [
title: "خط کشش ۰.۵–۰.۱۵ میلی‌متر",
en: "0.15–0.5 SQmm Drawing Line | TRB3 | SAMP",
category: "دستگاه کشش",
image:
"https://meshkee-storage.sas.amin.parminstorage.ir/saman_andish_2474/74e48c1a38cb4022d50c45dbd3be1f9a/conversions/WhatsApp-Image-2021-11-13-at-13.48.57-thumbnail.jpg",
image: `${assetBase}/product-drawing-line.jpg`,
code: "SAMP / TRB3",
},
{
@@ -106,8 +102,7 @@ const products = [
title: "پی‌آف ۶۰۰ میلی‌متر",
en: "600mm Pay Off | TAP D-0800 | KDM",
category: "دستگاه پی‌آف",
image:
"https://meshkee-storage.sas.amin.parminstorage.ir/saman_andish_2474/86a2ebc1d9ebc0d693437b61502e03ce/conversions/Picture1-thumbnail.jpg",
image: `${assetBase}/product-payoff.jpg`,
code: "KDM / TAP D-0800",
},
];
@@ -116,22 +111,19 @@ const news = [
{
title: "شرکت مهندسی، مشاوره و بازرگانی HService",
date: "۰۸ خرداد ۱۴۰۲",
image:
"https://meshkee-storage.sas.amin.parminstorage.ir/saman_andish_2474/2f19d9aa2413f3265b58d130ca4865ea/conversions/SATV---Weblog-Cover-thumbnail.jpg",
image: `${assetBase}/news-hservice.jpg`,
tag: "همکاری تجاری",
},
{
title: "نمایشگاه‌های تجاری پیشرو Wire و Tube",
date: "۲۴ اردیبهشت ۱۴۰۲",
image:
"https://meshkee-storage.sas.amin.parminstorage.ir/saman_andish_2474/2434bffa9a1ba2b3f857680a8fbb5b4f/conversions/SATV---Blog-Cover---Wire-&-Tube-2022-thumbnail.jpg",
image: `${assetBase}/news-wire-tube.jpg`,
tag: "رویداد",
},
{
title: "انرژی پاک و بازار گواهی انرژی تجدیدپذیر",
date: "۱۲ اردیبهشت ۱۴۰۲",
image:
"https://meshkee-storage.sas.amin.parminstorage.ir/saman_andish_2474/862690c612c4c41a2ddceb9bf7a5c848/conversions/SATV---Blog-Cover---Green-Energy-thumbnail.jpg",
image: `${assetBase}/news-green-energy.jpg`,
tag: "دانش فنی",
},
];