簡體   English   中英

Href鏈接和鏈接

[英]Href link and linking

好的,所以我現在有一個小問題,我希望有人能夠幫助我解決。

我用html制作了一個網站,完成設計后,我決定將其分解為php include幾行,以便於瀏覽和繼續編寫代碼。

例如:

HTML代碼

<html>
<head></head>
<body></body>
</html>

分解后:

PHP代碼

include 'php/head.php';
include 'php/body.php';

如果我不必在另一個文件夾中創建子菜單和類別,那一切都OK。 主要問題是我有這樣的文件夾樹:

nslife(root)
   images
   css
   js
   php
   novisad(folder that contains the sub categories)
   index.php

好的,所以像我一樣通過破壞代碼來構建頁面在主索引頁面上效果很好,但是將相同的代碼復制/粘貼到另一個新頁面(屬於子類別)后,所有href鏈接都無法正常工作。

例如:主索引頁:

<img id="right-img" src="images/baners/baner500x60.jpg">

但是,在子文件夾“ novisad”的“輔助”頁面中使用它之后,圖像不再顯示。

我知道它必須與../或//或其他任何方式一起工作,但是嘗試了所有可能,但沒有任何效果,如果它適用於一個頁面,則無法在另一個頁面上使用。

潛在的解決方案:

  1. 更新所有鏈接以使用絕對路徑,或使用../ (遍歷1級)進入正確的目錄。 或使用單個/表示每個路徑開頭的根目錄。

  2. 定義一些常量,例如ROOT_URL ,將其設置為等於站點的根地址,並將其添加到代碼中的每個路徑之前

  3. 使用: $_SERVER['DOCUMENT_ROOT']並將其放在您的路徑之前

這是一篇有關您可能想閱讀的主題的好文章

您當前使用的是相對網址,因此在引用images/baners/baner500x60.jpg ,需要在與引用該位置的文件相同的目錄中擁有一個名為images的文件夾。

為了您的目的,請改用絕對網址。 http://www.yourdomain.com/images/baners/baner500x60.jpg東西。 這些文件將始終引用相同的位置,而不管引用它的文件的位置如何。

您絕對需要絕對路徑。 您的代碼將引用像images/image.jpg這樣的文件,但在子文件夾中,實際路徑為../images/image.jpg 要解決此問題,請使用http://yoursite.com/images/image.jpg 如果您的站點將這些鏈接視為外部鏈接並且因此不會從中運行腳本,則可能會遇到問題,在這種情況下,您需要查找替代解決方案(該文件夾的其他包含項,或修改該包含項以便重寫鏈接取決於子文件夾的深度)。

對於img src屬性,請使用絕對URL而不是相對URL,如下所示:

<img id='right-img' src='http://www.domain.com/nslife/images/baners/baner500x60.jpg'>

您可以使用完整地址http://url.com/images/images.png或將../images/image.png放在URL的上一級。

在我的程序中,我設置了一個變量: $level = ''; 設置在頁面頂部。

最頂層是:$ level ='';

子文件夾設置為:$ level ='../';

Sub Sub Folder設置為:$ level ='../../';

等等。 然后,您只需在所有鏈接前添加變量。

$level.'css/style';

結果,您所有的鏈接都會正確響應。

對於較大的項目,請在conn頁面上執行此操作:

$db_host = "localhost"; 
    $db_username = "????"; 
    $db_pass = "????"; 
    $db_name = "????";

    $db = new PDO('mysql:host='.$db_host.';dbname='.$db_name,$db_username,$db_pass, array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ));

    //$site_url = 'http://'.$_SERVER['SERVER_NAME'];    
    $site_url = 'http://localhost/demo';

    # this page stuff   
    $pg_uri = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    $pg_url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
    $this_file = basename($_SERVER['SCRIPT_NAME'], ".php");
    $file_name = basename($_SERVER['SCRIPT_NAME']);

    # urls      
    $u_inc = $site_url.'/inc';  
    $u_panels = $site_url.'/panels';            
    $u_legal = $u_inc.'/legal';
    $u_forms = $u_inc.'/forms';              
    $u_admin = $site_url.'/admin';
    $u_plugin = $site_url.'/plugins';        
    $u_js = $site_url.'/js';    
    $u_regions = $site_url.'/regions';
    $u_menus = $site_url.'/menus';

    # paths
    $p_root = $_SERVER['DOCUMENT_ROOT'];     
    $p_inc = $level.'inc';
    $p_panels = $level.'panels';
    $p_legal = $p_inc.'/legal';              
    $p_forms = $p_inc.'/forms';
    $p_admin = $level.'admin';              
    $p_plugin = $level.'plugins';
    $p_js = $level.'js';                    
    $p_regions = $level.'regions';  
    $p_menus = $level.'menus';

一旦將var提交給內存,它將與其余的程序一起流動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM