سلام استاد ممنون از آموزش هاتون خواستم ببینم سایت راکت یا سایت های دیگه ای که نام فایل css شما به این شکل app.css?df۸۵dsf۴sdf۴sd۴s نمایش داده میشه از چه نوع فریم ورکی استفاده کردن و آیا اون فریم ورک در راکت تدریس شده؟
سلام
@sitefaryadi
چارچوب کلی سایت بر اساس فریم ورک لاراول
و اینکه فایل های css یا js به صورتی که گفتید هست
از قابلیتی در لاراول به عنوان لاراول میکس استفاده میشه
که شما تمامی فایل های css و جاوا اسکریپتتون رو به یک فایل تبدیل میکنید
فشرده میشه و بهینه.
تو اکثر دوره ها و پروژه ها هم از این قابلیت استفاده میشه.
البته اونچیزی که در متن سوال شماست اینه که:
فایل های استاتیک داخل سایت مثل تصاویر، فایل های css و js و فونت و ... بعد از نمایش سایت توسط کاربرها داخل سیستمشون کش می شن. به این صورت که وقتی مرورگر شما کروم یا فایرفاکس و ... یه سایتی رو باز می کنند برای اینکه در دفعات بعد فایل های تکراری رو دوباره نیاز نباشه دریافت کنند، اون فایل ها رو داخل کامپیوتر کاربر ذخیره می کنند. هر مرورگری هم کش خودش رو داره و این کش هم بر اساس ادرس سایته. یعنی مثلا یه فولدر با اسم سایت شما تو سیستم ساخته می شه و تمام فایل های استاتیک اونجا نگه داری می شه. اینکار باعث می شه که یک بار که شما با کروم یا ... یه سایت رو باز می کنی در دفعات بعد زمان بسیار کمتری ببره چون فایل های ثابت مثل css ها و js ها دیگه لود نمی شن و از داخل کش مرورگر خونده می شه.
حال مشکلی که پیش می یاد اینه که به فرض شما یکی از فایل ها مثلا عکس یا css رو تغییر می دی و اپلود می کنی روی سایتت. اما مشکل اینه که اون تغییر برای کاربران اعمال نمی شه چون قبلا یه فایلی به اسم مثلا styles.css بوده که الان هم هست! مرورگر نمی فهمه که این فایل تغییر داده شده و بهمین خاطر همچنان از روی فایل قدیمی که کش شده و روی کامپیوتر کاربر هست اطلاعات رو می خونه و نمایش می ده. برای اینکه این مشکل برطرف بشه و به مرورگرها بفهمونی که این فایله تغییر کرده یا باید اسم فایل رو عوض کنی که مثلا بکنی styles2.css یا بیای از این روش استفاده کنی که یه علامت سوال بگذاری و بعدش هرچیزی که دوست داری بنویسی:
styles.css?1
styles.css?alaki
styles.css?13980218
حالا از این به بعد هر بار که یه تغییری تو فایل css یا ... دادی کافیه بیای و اون نوشته بعد از علامت سوال رو تغییر بدی تا این تغییرات رو کاربرانی که اطلاعات سایت رو حتی کش کردند هم ببینند.
برای اینکه اینکارها رو دستی انجام ندی می تونی از طریق کدنویسی بگی که هر بار که پروژه پابلیش شد اتوماتیک بیا و اون فایلی که تغییر کرده رو یه نوشته تصادفی بهش بده تا این مشکل کش دیگه پیش نیاد. اینطوری دیگه نیاز نیست هر بار ما بریم دستی اون نوشته بعد از علامت سوال رو خودمون تغییر بدیم. در نهایت خروجی می شه یه همچین چیزی مثلا:
styles.css?df۸۵dsf۴sdf۴sd۴s
این موضوع هم ربطی نداره که شما از چه زبان یا فریم ورک برنامه نویسی استفاده می کنی و تو همه زبان ها وجود داره. نیازی هم نیست که حتما بری دنبالش تا اینکار رو اتوماتیک انجام بدی. می تونی هربار که فایلت رو تغییر دادی، نوشته رو هم تغییر بدی.
@SeyedMH.Mosavi
تشکر از شما، چقدر خوب توضیح میدید شما و قشنگ مطلب رو باز می کنید و بهش می پردازید
در خصوص این بخش از گفتارتون:
برای اینکه این مشکل برطرف بشه و به مرورگرها بفهمونی که این فایله تغییر کرده یا باید اسم فایل رو عوض کنی که مثلا بکنی styles۲.css یا بیای از این روش استفاده کنی که یه علامت سوال بگذاری و بعدش هرچیزی ...
روش دومی که اشاره کردین، یعنی توی کدهای html ای که داریم، وقتی داریم از طریق تگ link به فایل های css مون ارجاع میدیم، بیایم و آخرش این علامت سئوال و عدد رو اضافه کنیم، درست فهمیدم؟
و در خصوص این بخش هم:
برای اینکه اینکارها رو دستی انجام ندی می تونی از طریق کدنویسی بگی که هر بار که پروژه پابلیش شد اتوماتیک بیا و اون فایلی که تغییر کرده رو یه نوشته تصادفی بهش بده تا این مشکل کش دیگه پیش نیاد
منظورتون از کدنویسی چیه؟ با چه زبانی و در کجا این کدنویسی رو باید صورت بدیم؟
با سلام و تشکر از شما بابت سئوال جالبی که مطرح کردید.
فقط پیشنهاد داشتم که عنوان سئوال تون رو که یک تک کلمه گذاشتید عوض کنید می تونه برای خوانندگان بعدی ای که به این مطلب ممکنه سر بزنند بهتر بشه.
مثلا: پسوندهای حروف و اعداد پس از فایل های css چه هستند؟
دسته بندی سئوال رو هم می تونید از لاراول به طراحی وب تغییر بدین.
البته اینها صرفا پیشنهاد بود در جهت بهره بری دیگر بازدیدکنندگان سایت
@milad
در مورد سوال اول بله و مثال هم زدم. هموطنور که گفتم برای تمام فایل های استاتیک این عمل کاربرد داره. مثلا فرض کن شما یه عکس داری که ازش به عنوان لوگو تو سایتت استفاده کردی و اسمش هم logo.png هست. اگر تصمیم بگیری ظاهر لوگو رو تغییر بدی و دوباره طراحیش کنی چون کش شده همون مشکل مذکور اتفاق می افته. پس برای رفع این مشکل می تونی اینطوری ازش استفاده کنی:
<img src="images/logo.png?yechizi" />
در مورد سوال دومت هم مثلا فرض کن داری از asp.net استفاده می کنی. اینجا هر بار که پروژه رو تغییر می دی باید build اش کنی تا دوباره فایل های dll اش ساخته بشه. می تونی بهش بگی که فایل های های css من رو باهم ترکیب کن و یه فایل css درست کن با اسم app.css و در انتهاش هم یه نوشته رندوم بنداز مثلا تاریخ روز. مثلا سه تا فایل css داریم که در نهایت خروجی می شه همچین چیزی:
styles.css
styles2.css
styles3.css
=>
app.css?13980218
حالا هر بار که شما پروژه رو تغییر می دی و پابلیش می کنی فایل جدیدی با اسم جدیدی ساخته می شه.
البته خیلی هم نمی خواد به این موضوع حساس باشی تا از سمت سرور اتومات این اتفاق بیافته. من خودم همیشه بصورت دستی اینکارو می کنم و هر بار که یه فایلی تغییر می کنه می رم و تاریخ روز رو به انتهای اون فایل اضافه می کنم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟