From 51e7e4658414a80c809233fe7702e58a9c0d6b9b Mon Sep 17 00:00:00 2001 From: aramesh-site deploy Date: Fri, 9 Oct 2026 23:55:36 +0000 Subject: [PATCH] =?UTF-8?q?fix(seo):=20=D9=BE=DB=8C=D9=88=D9=86=D8=AF=20?= =?UTF-8?q?=D8=B5=D8=B1=DB=8C=D8=AD=20ZIP=20=D8=AA=D8=B5=D8=A7=D9=88=DB=8C?= =?UTF-8?q?=D8=B1=20=D8=B1=D9=88=DB=8C=20=D8=B5=D9=81=D8=AD=D9=87=D9=94=20?= =?UTF-8?q?=D9=BE=D8=B1=D9=88=DA=98=D9=87=20=D9=88=20=D9=81=D9=87=D8=B1?= =?UTF-8?q?=D8=B3=D8=AA=20=D9=BE=D8=B1=D9=88=DA=98=D9=87=E2=80=8C=D9=87?= =?UTF-8?q?=D8=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit دستیار AI گفت «تصاویر سایت را نتوانستم دریافت کنم» — آرشیو ZIP وجود داشت و از چهار کشور ۲۰۰ می‌داد، اما هیچ پیوندی به آن در صفحات نبود: llms.txt فقط الگو داده بود و مدل‌ها الگو را جای‌گذاری نمی‌کنند. اکنون: - صفحهٔ هر پروژه: دانلود همهٔ تصاویر (ZIP) - فهرست /projects: هر ردیف پیوند «تصاویر (ZIP)» همان پروژه را دارد (۶۵ پیوند) تا خزنده‌ها با دنبال‌کردن پیوند واقعی به آرشیو برسند. --- backend/app/seo_pages.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/app/seo_pages.py b/backend/app/seo_pages.py index 40db4f7..8ffa12f 100644 --- a/backend/app/seo_pages.py +++ b/backend/app/seo_pages.py @@ -850,6 +850,10 @@ def _site_content_html(db: Session, page_key: str, lang: str) -> str: line += f" — {esc(bits)}" if tail: line += f" [{esc(tail)}]" + # پیوند صریح به آرشیو تصاویر همان پروژه + zip_url = _absolute(f"/projects/{urllib.parse.quote(p.slug)}/images.zip") + zip_label = "images (ZIP)" if lang == "en" else "تصاویر (ZIP)" + line += f' — {esc(zip_label)}' items += f"
  • {line}
  • " parts.append(f"

    {'Our Projects' if lang == 'en' else 'پروژه‌های ما'}

    ") @@ -1150,7 +1154,14 @@ def _project_content_html(project: models.Project, lang: str, brand: str) -> str + f'" /> {esc(title)}' for p in images[:12] ) - parts.append(f"

    {label}

    ") + # پیوند واقعی به آرشیو ZIP — دستیارهای AI الگو نمی‌سازند؛ باید لینک صریح ببینند + zip_url = _absolute(f"/projects/{urllib.parse.quote(project.slug)}/images.zip") + archive_label = "Download all images (ZIP)" if lang == "en" else "دانلود همهٔ تصاویر (ZIP)" + parts.append( + f"

    {label}

    " + f'

    {esc(archive_label)}

    ' + f"" + ) return "".join(parts)