Nasıl PHP / HTML Bağlama

4 Cevap php

Tamam öylesine im çerçeveli sayfalar yapıyor yapılır, ve ben top.php ve bottom.php benim tasarım kadar parçalı biliyorum. I top.php dahil etmek için çalıştı & kadar top.php yılında style.css ve ajax_framework.js ve bu tür bağlantı var .. Şimdi bu harika çalışıyor video / index.php (bir başka Dirr) olarak bottom.php, ben böyle yaptım:

include "../top.php";
<-- and the originally index.php -->
include "../bottom.php";

I sitesine girdiğinizde Şimdi, bu style.css videolar / dizininde olması gerekiyor düşünüyor muhtemelen çünkü, yük style.css alışkanlık, aynı iki dosya ebeveyn .. / dizin üzerindeki vardır ajax_framework.js ile gider.

Şimdi ben ne yapmalıyım? Iyi bir şekilde çözmek için bazı yöntem ya da teknik? Ben bir şey değiştirmek istiyorsanız, daha sonra ben yapmak istiyorum benim son şey olurdu ki, bütün dizinleri değiştirmek gerekir çünkü Yani ben .., i have her dizine style.css ve ajax_framework.js kopyalamak zorunda kalmazsınız umut Eğer bazı güzel teknikler teşekkür var

4 Cevap

En az üç seçenek var:

  1. Tüm kaynaklar URL mutlak URL olun. Örneğin, değişim <script type="test/javascript" src="scripts/foo.js"> için <script type="text/javascript" src="/scripts/foo.js">. Bunu yapabilirsek, o kadar çok daha az müdahaleci bir çözümdür.

  2. Eğer top.php şunlardır önce BASEDIR sabit belirlemelerini ve buna bağlı her kaynak yolu göreceli yapmak:

    // in your file that includes top.php
    <?php define('BASEDIR', '..'); ?>
    // in top.php
    <?php if(!defined('BASEDIR')) define('BASEDIR', '.'); ?>
    <link rel="stylesheet" type="text/css" href="<?php echo BASEDIR; ?>/style.css"/>
    
  3. Bir <base> HTML etiketi ekleyin <head> (bu bunu yapmayın, berbat):

    <base href="/foo"></base>
    <!-- now all srcs, hrefs and whatnot are relative to /foo -->
    

    Hatta anchors ona göre olacak çünkü onun berbat. Eğer <a href="#foo"> sayfasındaki gibi bir bağlantı var ise qaz.php, <base href="/bar"> ile, link /bar#foo yerine {bir işaret olacaktır [(5)]}.

Eğer html sonrası yoktu ama mutlak Uri kullanarak olmadığını varsayıyoruz. Muhtemelen gibi bir şey yapıyoruz:

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

: Eğer gibi bir şey yapıyor olmalı ne zaman

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

Top.php bir <base href="..." /> etiketi ekleyin. Baz etiketi, tüm göreli tanım çözümlenir hangi URI tanımlar.

Ayrıntılar burada ve örnek: http://www.w3.org/TR/html401/struct/links.html#h-12.4

Cevap kolay:

Top.php i böyle bir şey var sanırım:

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

Sadece bu gibi, başına bir çizgi ekleyerek mutlak bir URL olarak değiştirin:

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

Şimdi tarayıcı mutlak bir yolu belge kök dizinden stylesheet arayacaktır.

Farklı mesaj başvurmak gibi görünüyor, çünkü MEZUNLARI, soru okuma insanlar kolayca durumu kavramak olamaz. Ben bu i önceki sorularını bulamadık çünkü bir yazı bütün sorunu tanımlamak için daha iyi olduğuna inanıyorum.