رفتن به مطلب

کش کردن فایل های استاتیک با htaccess


پست های پیشنهاد شده

سلام من هرچه می خوام با کد زیر فایل هامو کش کنم نمی شه

ممکنه از طرف سرور غیر فعال شده باشه ؟



# START Expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 2 month"
ExpiresByType image/gif "access plus 2 month"
ExpiresByType image/gif "access plus 2 month"
ExpiresByType image/png "access plus 2 month"
ExpiresByType image/jpg "access plus 2 month"
ExpiresByType image/jpeg "access plus 2 month"
ExpiresByType image/ico "access plus 2 month"
ExpiresByType text/css "access plus 2 month"
ExpiresByType text/javascript "access plus 2 month"
</IfModule>
# END Expires

لینک به ارسال

این رو تو .htaccess استفاده کنید :


<ifModule mod_deflate.c>
<filesMatch ".(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
این کد، فایل‌های CSS، JS، HTML، XHTML و PHP سایت شما را gzip می‌کند.
کد زیر نیز یک نمونه بسیار خوب برای فشرده سازی فایل‌های مورد اشاره روی سایت شما و نیز Cache کردن دیگر فایل‌های استاتیک است.
# BEGIN Compress text files
<ifModule mod_deflate.c>
<filesMatch ".(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
# END Compress text files
# BEGIN Expire headers
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
# END Expire headers
# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch ".(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch ".(css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
<filesMatch ".(js)$">
Header set Cache-Control "max-age=216000, private"
</filesMatch>
<filesMatch ".(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</filesMatch>
</ifModule>
# END Cache-Control Headers
# BEGIN Turn ETags Off
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
# END Turn ETags Off
# BEGIN Remove Last-Modified Header
<ifModule mod_headers.c>
Header unset Last-Modified
</ifModule>
# END Remove Last-Modified Header

لینک به ارسال

سلام

این رو امتحان کنید


## EXPIRES CACHING ##
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"

لینک به ارسال

سلام

این رو امتحان کنید


## EXPIRES CACHING ##
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"

دوست عزیزم کد منم همینه اما متاسفانه جواب نمی ده

لینک به ارسال

فایل htaacess. رو پیوست کنید


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<Files 403.shtml>
order allow,deny
allow from all
</Files>
## EXPIRES CACHING ##
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"

لینک به ارسال

سلام . کدتون رو خودم روی سرور تست کردم و جواب میده . شما باز این کد رو امتحان کنید و بعدش با gtmetrix تست کنید ببینید درصد Leverage browser caching زیاد شده یا نه . با این کد باید درصدش بیاد روی حدود 80 تا 90 . اگه باز نشده باشه مشکل از سرور شماست ;)


## EXPIRES CACHING ##
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 month"
# My favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# CSS
ExpiresByType text/css "access 1 month"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
</IfModule>

لینک به ارسال

عذر می خوام کش کردن فایلهای ایستاتیکی یعنی چی؟

فایل وقتی ایستاتیکه که نیازی به کش نداره یعنی در واقع کش اون فایل می شه یک کپی از خود فایل

کش وظیفه اش کپی برداری از بخش های داینامیکه که در هر بار لود مجبور نباشه اونها رو از دیتابیس چک کنه

لینک به ارسال

عذر می خوام کش کردن فایلهای ایستاتیکی یعنی چی؟

فایل وقتی ایستاتیکه که نیازی به کش نداره یعنی در واقع کش اون فایل می شه یک کپی از خود فایل

کش وظیفه اش کپی برداری از بخش های داینامیکه که در هر بار لود مجبور نباشه اونها رو از دیتابیس چک کنه

از مباحث بالا بایستی تا الان متوجه شده بودین اما بازم توضیح می دم

منظورم همون فایل هایی مثل عکس و جاوا و سی اس اس و .... که همیشه در کلیه صفحات سایت حضور دارند و تغییر نمی کنند

منظور از کش کردن فایل هم اینه در مرورگر کاربر کش بشه به مدت طولانی

همون چیزی که گوگل اسپید چک و gtmetrix.com همش به سایت من این گزینه رو گیر می دن Leverage browser caching

امیدوارم توضیحاتم برای شما تکمیل بوده باشه و چیزی متوجه شده باشید

ویرایش شده توسط iran
لینک به ارسال

سلام . کدتون رو خودم روی سرور تست کردم و جواب میده . شما باز این کد رو امتحان کنید و بعدش با gtmetrix تست کنید ببینید درصد Leverage browser caching زیاد شده یا نه . با این کد باید درصدش بیاد روی حدود 80 تا 90 . اگه باز نشده باشه مشکل از سرور شماست ;)

نه دوست عزیز نشد که نشد

احتمالا از سرور هست

لینک به ارسال

معمولا اول عنوان رو می خونم وقتی عنوان مشکل داره ادامه را نمی خونم یعنی فرصتش نیست

برای کش شدن فایل های js و تصاویر معمولا قابلیت از طرف سرور تعریف می شه و نیازی به تعریف مجدد کاربر نداره و برای فایل های css باید کوکی ساخته بشه

با جاوا اسکریپت کدی شبیه :


function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
window.onload = function(e) {
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
}
window.onunload = function(e) {
var title = getActiveStyleSheet();
createCookie("style", title, 365);
}
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);

که البته یک سرور خوب معمولا این کار را هم خودش مستقیم می کنه و بعید می دونم الان سایتی باشه که دستور کوکی یا کش کاربر رو دستی بنویسه

لینک به ارسال
  • 1 سال بعد...

با سلام

متاسفانه سایتم دچار ایراد شده در این بخش

Leverage browser caching

میشه راهنمایی بفرمایید چه کدی باید وارد کنم؟

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...