سلام و عرض ادب خدمت استاد مدائنی عزیز :
، من مدت خیلی قبل یه سوال پرسیدم در مورد مشکلم که از لینک میتونید در جریان قرار بگیرید https://toplearn.com/ShowQuestion/62214/%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%85%D8%AF%D9%84-%D8%A8%D9%87-%D9%81%D8%A7%DB%8C%D9%84-css-%D8%9F!!
خلاصه من قضیه رو ول کردم تا اینکه الان پیگیرش شدم و متوجه شدم که چقدر ساده میشه حلش کرد... من به جای عکس پروفایل از رنگ برای کاربران استفاده میکردم و برای نمایش مجبور بودم استایل درون خطی بدم و از بانک بخونم .....
الان خیلی ساده یه فایل css جنریت میکنم و از کلاس های اون استفاده میکنم و از شر استایل درون خطی که برای سئو خیلی بده راحت شدم...
[Route("GenCss/{id}")]
public ContentResult GenCss()
{
var builder = new StringBuilder();
foreach (var selector in db.Users.ToList())
{
builder.Append(".user"+selector.UserID+"{"+ "color:" + selector.UserColor+ "}");
}
return Content(builder.ToString(), "text/css");
}
این کانتنت ریزالت خیلی خیلی ساده فایل css مارو می سازه...
نتیجش به صورت زیر هستش... :
سپس خیلی ساده فقط باید اون رو رفرنس بدیم... لازم به ذکر است این نوع رفرنس دادن async است و موازی لود میشود.
<link rel="stylesheet" href="/GenCss" media="print" onload="this.media = 'all'; this.onload = null;">
و در نهایت به جای اینکه برای خوندن رنگ کاربر به بانک کوئری بزنیم کافیه که از کلاس هایی که جنریت کردیم استفاده کنیم...
<i class="icon-user @("user"+item.UserID)"></i>
دیگه میشه هر جایی از رنگ کاربر که تو بانکش زخیرس استفاده کرد، بدون دادن استایل درون خطی که برای سئو سمه....
این مورد کاملا تست شده است و اکنون روی سرور تو سایتم (https://kopolart.ir) در حال اجراست... میتونین مشاهده بفرمایین....
خواستم این هارو تو سوال قبلم بزارم متاسفانه بسته بود... گفتم جدید بزارم....
سلام دوست من وقتتون بخیر
ممنون از توضیحات کاملتون و ارائه راه حل
موفق باشید دوست من🙏🌹