PHP Yolları Dahil

5 Cevap php

Ben PHP için yeni kulüpler ve şunları kullanarak benim CSS dosyaları bağlamaya çalışırken ben bir sorun yaşıyorum.

Temelde ben olursa olsun dosya ne kadar aşağı belli bir dizine geri bağlantı benim dosyalar gerekir. Ben kullanarak denedi

<?php
    include $_SERVER['DOCUMENT_ROOT'] . '/sysprogs/required/header.html'; 
?>

Öyle de css dosyaları arıyor biter dizin Ama öylesine header.html benim css dosyalarına bağlantılar içeren

http://localhost/SysProgs/software/CSS/style.css

bunun yerine o olduğu için gitmek istediğiniz yerin

http://localhost/SysProgs/required/CSS/style.css

Ben belirtti anlamda umut ve bana yardımcı olabilir umuyoruz

Thankyou for all your help everyone!

5 Cevap

Ben kesinlikle kullanmak olmaz <base>. Ben daha önce bu konuda pek çok sorun haline çalıştırmak. Eğer <base> kullanırsanız, sizin bağlantı TÜM bu temel değere göre olacak.

Bunun yerine, ortak dizinler için PHP sabitleri ayarı öneriyoruz. Örneğin:

PHP Code:

<?php
    define('CSS_DIR', '/SysProgs/required/CSS/');
?>

HTML Code:

<link href="<?php echo CSS_DIR ?>style.css" rel="stylesheet" type="text/css" />

One Idea

Tam URL'yi kullanın header.html. Bu kesin ve sağlam olacaktır.

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

Another Idea

<base> başlık etiketi kullanın. Bu CSS bağlantılar dahil, için temel bir URL belirtmek için izin verir, ve kısa vadede az çalışması gerekebilir (see note below).

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

Daha az w3schools

Aşağıdaki açıklamalarda belirtildiği gibi Note: base sonuçta bu değer daha fazla karışıklığa neden olabilir.

Ben senin uygulama merkezi bir yerde mutlak bir yol ve bir webroot hem tanımlamak istiyorum:

<?php

  define("APP_WEBROOT", "/myapp"); 
  define("APP_ROOTDIR", "/home/www/example.com/htdocs/myapp");

 ?>

Eğer o zaman gibi doğru bağlantıları "mutlaklaştırmayı" yapabilirsiniz:

<?php echo APP_WEBROOT; ?>/software/CSS/style.css

Ben bunu tercih

  • üzerinde <base> bu etiket karışıklık yaratır ve uzun vadede korumak için kod zorlaştırır çünkü

  • Bu sizin seçtiğiniz bir alt uygulama yüklemek için size yapamaz hale çünkü mutlak yollarını /software/CSS/style.css kullanarak üzerinde: Her zaman kök dizine bağlı olacaktır.

Siteleri tasarlarken ben bu sorunun içine bir sürü çalıştırın. Ben özel CMS var, ben aşağıdaki kullanın:

$basedir = "root_directory/";
$basedirPHP = $_SERVER['DOCUMENT_ROOT'].$basedir;
$basedirHTML = "http://".$_SERVER['SERVER_NAME'].$basedir;

Ben bu yüzden herhangi bir çaba olmadan sunucuda farklı dizinlerinin siteyi taşıyabilirsiniz $ basedir tanımlar. $ BasedirPHP ve $ basedirHTML vb CSS, JS, bağlarken yüzden, Bahsettiğiniz ya php ile veya benzeri dosyalar arayabilirler vardır

Eğer wordpress iseniz, sadece 'bloginfo('template_directory'); şablon dosyalarında aynı şeyi iyi ol kullanın.

Anlamak için ilk şey, soru ile ilgili bir şey PHP sahiptir. Sadece HTML questuon olarak dosya o kadar basittir. PHP olmadan aynı kalacaktır. Sadece CSS dosyasının mutlak yolunu kullanabilir

Ve düşünmek başka bir şey: bazı soruları kabul etmek düşünün.