PDA

View Full Version : وقتی از url rewriting استفاده میکنم css ها کار نمیکنن



roze_sepideh
دوشنبه 18 تیر 1386, 18:44 عصر
من وقتی خودم دستی با استفاده از global.asax میام و rewrite میکنم عکسهایی که در صفحات استفاده کردم و همینطور css ها نمایش داده نمیشن....انگار پیداشون نمیکنه..
مشکل چیه؟؟؟:عصبانی++::عصبانی++:

SalarSoft
دوشنبه 18 تیر 1386, 19:58 عصر
سوالتون نامفهومه!

ولی مشکل url rewriting با سایر فایل ها زمانی پیش میاد که ما از سطح IIS اقدام به این کار کنیم!
که ظاهرا برای شما اینطوری نیست!
بیشتر توضیح بدید

roze_sepideh
دوشنبه 18 تیر 1386, 23:36 عصر
خوب من کار خاصی نمیکنم
فقط میام یه url شبیه این میگیرم:



localhost/mydomain/folder1/about.aspx


میخوام وقتی rewrite که میکنمش با حالت زیر مسیر رو عوض میکنم:



localhost/mydomain/myfolder/folder1/Default.aspx?i=about


صفحه هم لود میشه اما عکسها نه و css ها هم نه...!!!!! :((
با اینکه مسیر ها Relative داده شده اما بازم....بی فایده هست!

SalarSoft
سه شنبه 19 تیر 1386, 19:51 عصر
نباید هم درست کار کنه.

قبل از حل مشکل باید مشکل رو فهمید.
برای فهم سریع تر شما یک مثال میزنم:
اگر شما یک تصویر در کنار فایل about.aspx خود با نام test.jpg و css با نام test.css داشته باشیدف در حالت عادی مسیر آنها به این صورت خواهد بود:
localhost/mydomain/folder1/test.jpg
localhost/mydomain/folder1/test.css

از اونجایی که فایل aspx خودتون مسیر رو نسبی (relative) دادین پس در نتیجه مسیری که مرورگر وب شما در نمایش خواهد داد این گونه است:

localhost/mydomain/myfolder/folder1/test.jpg
localhost/mydomain/myfolder/folder1/test.css
که خب مسلمه وجود ندارند!

راه حلی که من برای این مسئله در نظر میگیرم که البته ممکنه برای شما سخت باشه، استفاده از کلاس استیل های CSS است.
به این صورت که عمل درج لینک به فایل css خودتون رو به صورت استاتیک انجام بدید.(مثلا http://site.com/css.css)
و برای تصاویر خودتون کلاس های CSS تعریف کنید و در آنها مسیر فایل عکس رو با توجه به مسیر فایل CSS به صورت relative وارد کنید. وارد کردن طول و عرض هم لازم خواهد شد.
سپس در صفحه خودتون هم به جای درج مستقیم تصاویر در صفحه یک تگ div همراه با ویژگی class برابر با کلاس استیل تعریف شده در فایل css تون قرار بدیم.

برای فهم ساده تر یک مثال:

لینک به فایل css

<link rel='stylesheet' type='text/css' href='http://localhost/mydomain/folder1/test.css' />

تصویر در صفحه

<div class='TestCSSClass'></div>

تعریف در فایل css

.TestCSSClass{background-image:url(folder1/test.jpg); width:200px; height:70px;}


در پایان تاکیدا این روش URL_Rewriting رو برای شما پیش نهاد میکنم.
http://www.codeproject.com/useritems/ASPnet_URL_Rewriting.asp

توضیح از این کامل تر نمیشد