سلام کسی میدونه چجوری به مرورگر بفهمونیم وقتی کد های css و js رو تغییر دادیم دوباره load اشون کنه و کش رو پاک کنه و اون فایل قدیمی ها رو دوباره load نکنه؟
چون من هر تغییری میدم اما مرورگر ها تغییرات نشون نمی دن همون فایل قبلی ها رو از کش فراخونی میکنن سایت بهم میریزه تا کش مرورگر رو پاک کنیم درست شه اگه کسی میدونه کمک کنه خیلی ممنون میشم
سلام
اگه از لاراول استفاده میکنی فکر کنم اینجا بتونی راه حلتو پیدا کنی.
mix.js('resources/js/app.js', 'public/js')
.version();
آره اما به کاربر ها که نمی تونیم بگیم اومدی تو سایت ctrl + f5 رو بزن تا اگه تغییر ای ایجاد شده بتونی ببینی
سلام
اگه از لاراول استفاده میکنی فکر کنم اینجا بتونی راه حلتو پیدا کنی.
mix.js('resources/js/app.js', 'public/js')
.version();
برای اینکار دو تا روش وجود داره.
یکی سمت سروری و یکی سمت کلاینت. سمت سرور رو که دوستمون گفتن و بسته به زبان و فریم ورک می تونه متفاوت باشه.
برای سمت کلاینت هم می تونی از query string استفاده کنی:
styles1.css?v1
style2.css?version=1
script1.js?salam
script2.js?123
مهمه نیست بعد از علامت سوال چی می زاری. مهم اینه که هر بار اون رو تغییر بدی مرورگر مثل یه فایل جدید باهاش رفتار می کنه و دوباره برای کاربر load اش می کنه و اینطوری دیگه مشکل کش سمت مرورگر حل می شه
یه زمانی شما یا بلد نیستی، یا دوست نداری یا یه تعداد فایل داری که نمی خوای وقتی یکی رو تغییر دادی مجبور بشی همه رو از اول کاربر بارگزاری کنه، می تونی از روش سمت کلاینتی استفاده کنی.
یه زمان دیگه که کارت رو راه می اندازه و سمت سرور نمی تونه بهت کمکی کنه یا دردسر داره، فایل های استاتیکی هست که تو پروژه داری ازش استفاده می کنی و تو مرورگر هم کش شده. اینجا هم می تونی از این روش استفاده کنی. کافی اخر اسم فایل ؟ بگزاری و یه چیزی قرار بدی که با دفعه قبلی فرق می کنه
سلام
باید تو htaccess زمان فایل ها رو بر اساس ثانیه، ساعت، هفته یا روز تعریف کنید.
کدهای زیر می تونه کمکتون کنه. فقط فایل هایی که زود به زود تغییر داده میشن رو باید زمان کمتری براشون تعریف کنید.
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 year"
AddType image/svg+xml .svg
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
ExpiresByType application/vnd.ms-fontobject "access 1 year"
ExpiresByType application/x-font-ttf "access 1 year"
ExpiresByType application/x-font-opentype "access 1 year"
ExpiresByType application/x-font-woff "access 1 year"
ExpiresByType application/javascript "access 1 year"
ExpiresByType application/pdf "access 1 year"
ExpiresByType application/x-shockwave-flash "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
</ifModule>
<filesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
سلام خدمت دوستان برای اینکه مرور گر تغییرات جدید رو اعمال کنه خیلی راحت تگ php رو جلوی فایل css یا js خود باز و بسته کنید و درونش از تابع time استفاده کنید
دیگه نیازی نیست بعد از تغییرات کاری انجام بدی اتوماتیک اعمال میکنه با تشکر
@tehranirashid
دوست عزیز؛ این روش به ظاهر مشکل رو حل میکنه و شکی در اون نیست. ولی یک مشکل شاید بزرگ تر ایجاد میکنه! اینکه شما با این کار کلا سیستم Cache رو دارید از کار می اندازید. چون در هر بار لود شدن صفحه یک مقدار متفاوت خواهد گرفت. این یعنی یک کاربر اگر از ۵ صفحه سایت شما بازدید کنه ۵ بار مجبور هست کلیه فایلهای CSS و JS شما رو دانلود کنه. و سرور شما هم مجبور هست ۵ بار فقط برای همین یک کاربر کلیه این فایل ها رو serve کنه.
همین رو ضرب کنید در یک بازدید ۵۰۰۰ نفره و میانگین بازدید از ۱۰ صفحه سایت شما!
در حالی که اگر روش اصولی و درست مثل استفاده از روش های Cache Busting که در لاراول میکس و پکیج های دیگه تعبیه شده استفاده کنید همزمان هم از مزیت cache شدن فایل ها روی سیستم کاربرها استفاده میکنید و به این شکل بهینه سازی بسیار بالایی رو شاهد خواهید بود. و هم هر زمان که یکی از فایل ها تغییر پیدا کرد عملیات دانلود فایل جدید و اعمال تغییرات بصورت اتومات انجام میشه و هیچ کار اضافه ای لازم نیست انجام بشه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟