پرش به مطلب اصلی

ساخت یک منبع وب

هدف​

یک منبع وب اضافه کنید — یک فایل برنامه مانند یک باندل JavaScript، یک شیوه‌نامه، یک قطعهٔ HTML، یک نشان یا یک SVG — که پلتفرم آن را در پایگاه داده ذخیره می‌کند و همراه راه‌حل شما بسته‌بندی می‌کند، تا هر جا که راه‌حل وارد شود همراه آن سفر کند.

منبع وب برای فایل‌هایی است که یک برنامه از آن‌ها ساخته می‌شود. سند بزرگی که کاربر هنگام اجرا بارگذاری می‌کند منبع وب نیست — جای آن در فضای ذخیره‌سازی فایل است. یک محدودیت اندازه برای هر فایل، این دو را از هم جدا نگه می‌دارد.

پیش‌نیازها​

  • وارد مرکز کنترل مدیریت شده‌اید.
  • یک محیط در نوار بالا انتخاب شده است و یک راه‌حل را باز کرده‌اید (به «ساخت یک راه‌حل» نگاه کنید).

گام‌ها​

  1. در راه‌حل باز، منابع وب را در ناوبری کناری انتخاب کنید.
  2. گزینهٔ جدید را انتخاب کنید.
  3. یک نام نمایشی و یک نام منطقی وارد کنید. نام منطقی پیشوندِ ناشر دارد و شبیه مسیر است — برای نمونه par_/dashboard/app.js یا par_/logo.svg.
  4. نوع را انتخاب کنید (JavaScript، CSS، HTML، JSON، XML، متن، PNG، JPEG، GIF، SVG، آیکون، یا سایر/دودویی).
  5. محتوا را فراهم کنید:
    • برای یک نوع متنی (JavaScript، CSS، HTML، JSON، XML، متن، SVG) می‌توانید یا آن را درجا در ویرایشگر ویرایش کنید یا یک فایل بارگذاری کنید.
    • برای یک نوع تصویری یا دودویی، یک فایل بارگذاری می‌کنید (چیزی برای تایپ کردن نیست).
  6. گزینهٔ ذخیره را انتخاب کنید. فایل همراه راه‌حل ذخیره می‌شود و پلتفرم می‌تواند آن را سرو کند.
  7. فهرست، نشانی هر فایل را نشان می‌دهد: جایی که پلتفرم آن را ارائه می‌کند. آن را در زبانهٔ تازه باز کنید یا با دکمهٔ کنارش رونوشت بگیرید تا به هر چیزی که فایل را می‌خواند بدهید.

بارگذاری پوشه‌ای از فایل‌هایی که به هم پیوند دارند​

صفحه‌ای که شیوه‌نامه، اسکریپت و تصویرهایش را با نشانی نسبی پیوند می‌دهد، همهٔ آن‌ها را کنار هم لازم دارد. به جای ساختن تک‌تک آن‌ها:

  1. فایل‌ها را زیپ کنید: خودِ فایل‌ها، نه پوشه‌ای دور آن‌ها.
  2. در منابع وب، بارگذاری یک پوشه را برگزینید.
  3. یک نام نمایشی و یک پوشه زیر پیشوند ناشر خود بدهید، برای نمونه par_/badge.
  4. زیپ را برگزینید و بارگذاری را بزنید.

هر فایل با مسیر نسبی خودش زیر آن پوشه ساخته می‌شود، پس badge.html که به badge.css پیوند دارد، par_/badge/badge.css را پیدا می‌کند.

بارگذاری دوباره در همان پوشه جایگزین محتوای آن می‌شود و فایل‌هایی را که در زیپ تازه نیستند برمی‌دارد. انتشار یک تغییر همین‌گونه است، چون منبع وب در جای خود ویرایش نمی‌شود. فایل‌هایی که پلتفرم ارائه نمی‌کند، مانند یک .map، کنار گذاشته می‌شوند و نتیجه می‌گوید کدام‌ها.

برنامه یا کنترل سفارشی اینجا بارگذاری نمی‌شود. هر کدام یک بسته است که در برنامه‌های سفارشی یا کنترل‌های سفارشی نصب می‌شود (نگاه کنید به ثبت یک کنترل سفارشی).

پشت صحنه چه اتفاقی می‌افتد​

بایت‌های فایل در پایگاه دادهٔ پلتفرم ذخیره می‌شوند و به عنوان یک جزء از راه‌حل شما ثبت می‌گردند، بنابراین خروجی گرفتن از راه‌حل فایل را با خود می‌برد و وارد کردن راه‌حل آن را در محیط مقصد از نو می‌سازد. پلتفرم فراداده‌های فایل را اعتبارسنجی می‌کند، بررسی می‌کند که نام منطقی با پیشوند ناشر شما شروع شود، و فایلی را که از محدودیت اندازه فراتر رفته باشد رد می‌کند — فایل بزرگ باید به جای این، در فضای ذخیره‌سازی فایل قرار بگیرد. پلتفرم سپس می‌تواند فایل را از نشانی خودش و با نوع محتوای درست سرو کند.

نشانی در فهرست …/environments/<محیط>/webresources/<نام منطقی> است و بی‌ورود به هر کسی پاسخ می‌دهد: همین است که به یک صفحه، یک چاپگر یا یک ایمیل اجازه می‌دهد فایل را بارگذاری کنند. چیزی را که منتشرش نمی‌کردید در منبع وب نگذارید.

عیب‌یابی​

  • «…must start with the publisher prefix…» — نام منطقی باید با پیشوند ناشر شما و پس از آن _ شروع شود (برای نمونه par_).
  • «The web resource manifest is invalid…» — نام منطقی باید با حروف کوچک باشد و تنها حروف، ارقام، _، .، / یا - را در بر بگیرد (بدون فاصله).
  • «…is over the … cap. Large files belong in Object Storage…» — فایل از محدودیت اندازهٔ هر منبع فراتر رفته است؛ فایل‌های بزرگ را در فضای ذخیره‌سازی فایل نگه دارید، نه در یک منبع وب.
  • «A web resource '…' already exists in this environment.» — منبعی با همان نام منطقی از قبل موجود است؛ نام دیگری انتخاب کنید.
  • «The bundle entry '…' has a path that would escape its folder.» — زیپ یک بخش .. یا مسیری مطلق دارد. خودِ فایل‌ها را زیپ کنید، نه مسیری بالاتر از آن‌ها.
  • «The bundle holds no files the platform can serve.» — هیچ چیز در زیپ نوعی ندارد که پلتفرم ارائه کند. بررسی کنید که خودِ فایل‌ها را زیپ کرده‌اید، نه پوشهٔ دیگری را.
  • «The bundle holds … files; the limit is 200.» — تقریباً بی‌گمان پوشهٔ اشتباهی زیپ شده است (به احتمال زیاد node_modules).

سناریوهای مرتبط​

  • ساخت یک راه‌حل.
  • ثبت یک برنامهٔ سفارشی React.