دسته بندی ها
18:58 1400/06/14

به روزرسانی سایت Asp.net و نحوه حفظ فایل های Static

مشخصات سوال کننده :
کاربر : frisat     امتیاز کاربر : ‎−2     رتبه کاربر : 7121
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2537
هوش مصنوعی

پاسخ هوش مصنوعی

برای حفظ فایل های استاتیک و آپلودی در ASP.NET هنگام به روزرسانی، می توانید از روش های زیر استفاده کنید:

1. برای جلوگیری از از بین رفتن فایل های آپلود شده، بهتر است فایل های آپلودی را در پوشه ای جدا از پوشه ی نشر (publish) برنامه قرار دهید. به عنوان مثال، می توانید یک پوشه به نام uploads در سطح ریشه ی دایرکتوری وب سرور ایجاد کنید. سپس هنگام آپلود فایل ها، آدرس این پوشه را در دیتابیس ذخیره کنید.

در این صورت، وقتی نسخه دوم برنامه را منتشر می کنید، این پوشه و محتویات آن همچنان در سرور باقی می ماند.

بهتر است مراحل زیر را دنبال کنید:


- فایل های آپلودی را در یک مسیر خاص خارج از پوشه ی wwwroot ذخیره کنید.
- آدرس فایل ها را در دیتابیس ذخیره کنید.
- هنگام معرفی نسخه جدید، فقط حاوی فایل های مربوط به برنامه باشد و پوشه ی آپلودها را نادیده بگیرید.

2. برای مدیریت تغییرات در پایگاه داده بدون از دست دادن داده های موجود، از Migrations استفاده کنید. زمانی که شما یک migration ایجاد می کنید، تغییرات اساسی (مانند حذف یا اضافه کردن فیلد) به گونه ای پیاده سازی می شود که داده های اولیه از دیتابیس پاک نشوند.

برای اجرای migration، از دستورات زیر استفاده کنید:


- در Package Manager Console:
  Add-Migration MigrationName
  Update-Database

با این کار، می توانید ساختار دیتابیس خود را به روز کنید و به داده های موجود آسیبی نرسد. اطمینان حاصل کنید که قبل از اعمال هرگونه migration، یک نسخه پشتیبان از دیتابیس داشته باشید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 20:13 1400/06/14

وقتی شما می خواید سایتتون رو به روز رسانی کنید و نسخه جدید رو جایگزین نسخه قبلی کنید ابتدا باید پروژه رو پابلیش کنید. وقتی پروژه رو پابلیش میکنید، فولدر wwwroot که در واقع روت سایت شما هست و فایل های static و ثابت شما مثل فایلهای css، js، تصاویر و ... هم داخلش هست در کنار فایلهای پابلیش شده وجود داره.

اما چون شما سایتتون از قبل داره کار میکنه دیگه نباید فولدر wwwroot رو هم جایگزین کنید. بنابراین موقع آپدیت فولدر wwwroot رو حذف نکنید و از همین فولدر استفاده کنید تا اطلاعات قبلی از بین نره.

در مورد سوال دوم هم یا باید از ابتدا پروژتون رو جوری تنظیم کنید که با مایگریشن آپدیت بشه که روشی سخت هست و خیلی هم خطا براتون پیش میاد. یا اینکه هر تغییری که در دیتابیس ایجاد میشه یک اسکریپت از تغییرات بسازید و روی دیتابیس اصلی اجرا کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
2 نظر
frisat : خب پوشه www.root نسخه قبلی رو پاک نمیکنم.حال اگر فایل css یا پلاگینی در www.root نسخه جدید اعمال کردم چطور میتونم به پوشه www.root نسخه قبلی منتقلش کنم.آیا دیگه راهی نداره حتما باید پوشه نسخه قبل رو پاک کنم ؟

امتیاز کاربر : ‎−2   رتبه کاربر : 7121   تاریخ ثبت : 12:33 1400/06/15
hamid_b : پاسخ به frisat : شما فولدر wwwroot رو نباید جایگزین کنید. اگر هم فایلی یا پوشه ای داخل این فولدر اضافه کردید همون رو بیارید دقیقا در همون مسیر در wwwroot موجود در سرور هم کپی کنید و بعد سایت رو به روز رسانی کنید.

امتیاز کاربر : 518   رتبه کاربر : 4   تاریخ ثبت : 09:41 1400/06/17
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود