2011-11-21 15 views
11

Mod yeniden kullanarak kullanıcı dostu URL yapmaya çalışıyorum. Sorunum, URL'ye 'name' gibi bir kategori verdikten sonra, sayfayı yeni URL kullanarak aradığımda CSS dosyasını veya resimlerini yükleyemez. ?URL yeniden yazdıktan sonra eksik CSS dosyası ve görüntüler

ben gibi bir bağlantı vardır:

localhost/MyWebSite/proje id = 22

Yeni linke olduğu gibi bir şey

localhost/MyWebSite/proje/22/myproject.project

htaccess kodu:

RewriteRule ^project/([0-9]*)/.*\.project$ /project.php?project=$1 [L] 
(% 100 doğru olmayabilir ama şu anda benim koduna erişimi olmayan yüzden sadece bu yazdım ve orijinal kaynağa çalışıyor)

Benim kök dizin localhost'tur/MyWebSite/

ve benim CSS dosyası css/style.css içindedir

localhost/MyWebSite/css/style.css

benim htaccess

localhost/MyWebSite/.htaccess

ve benim project.php dosyası Yani

localhost/MyWebSite/project.php

içindedir proje sayfasında göreli yol kullanarak CSS dosyasına erişimim var,

<link href="css/style.css" rel="stylesheet" type="text/css" /> 

ama yeniden yazılan URL sayfasını kullandığımda CSS dosyasını bulamıyorum.

Etki alanı adıyla mutlak yol kullanamıyorum çünkü henüz etki alanım yok! ve her şey olabilir. i localy benim programı çalıştırdığınızda localhost/MyWebSite/project.php ve benim kök dizini localhost böylece css bağlantı

gibi görünmelidir olan benzer sorular üzerinde önerildiği gibi

tek yön etki alanına göreli yolu kullanmaktır

= "MyWebSite/css/style.css"

href ama ben muhtemelen bir şey

gibi tüm bağlantıları değiştirmelidir yayınlanmaya başladığında

href = "/ css/style.css"

bu işin bir sürü gibi

cevap

26

yerel sürümü için baş bölümü

için

<base href="//localhost/mywebsite" /> 

eklemek

ve canlı sürümleri içinEğer taban yolu veya connection.php sunucu görünümü yolunu tanımlamak zorunda ve u bu yolu istedikleri zaman, yapmak http://www.w3.org/TR/html4/struct/links.html#h-12.4

+0

Evet ama aynı zamanda görüntü var ve ben her bir görüntü için etki alanı adını değiştiremiyorum – max

+0

@max, 'base' etiketi de görüntüleri ile çalışır .. örnek olarak http://jsfiddle.net/gaby/JE656/ –

+0

Benim için ' bir çekicilik gibi çalıştı! :) – jackkorbin

1

takın css href bağlantısının aynı göreli yolu ile aynı dosya içine bir görüntü, internette görseli sağ tıklayın sayfayı bir tarayıcıda yüklemek görünüyor kaşif, özelliklerini tıklayın ve göreli yol aslında işaret nerede görmelisiniz.

+0

Bu olması gerektiği, böylece sadece başka dizindir o benim kök ve/MyWebSite/klasör olarak kabul localhost cuz bağlantı üzerinde görünüşe göre :) – Mattis

+0

de i MyWebSite içermelidir yerleri öğrenmek için iyi bir yoldur bağlantıya dahil edilmelidir. Yaşadığım zaman bağlantıların hepsini değiştiremiyorum! – max

+0

Tüm bağlantıların anlaşılabilir zorluklarını değiştiremezsiniz, bu nedenle tüm yolları göreli olarak tutmayın, ancak her yolu doğru göreceli konumla ayarlayın. Not: Mutlak yolu kontrol etmek ve doğru olana kadar göreceli yolunuzu ayarlamak anlamına gelen mutlak yolu kullanmak istemedim. Bir klasöre gitmek için ../ kullanabilirsiniz. – Ozzy

2

de

<base href="//your.domain.here" /> 

referans olarak değiştirin o küresel. sonra bu değişken çağrılacak ve css veya görüntüler tüm yolu alacaktır.

örneğin

$ SVP = "http://www.example.com/"

küresel $ SVP; echo $ SVP;

yüzden

İlgili konular