2016-06-16 11 views
0

リンクのパスに関する質問があります。問題は次のとおりです:私の課題では、すべてのリンクが壊れています(半分を除くすべてが機能しないわけではありません)。リンクでマジック定数__DIR__を使用できますか?

html_start.phpにはnav.phpが含まれており、start_htmlは/admin/index.phpなどに含まれています。

public_html 
    html_start 
    nav 
styles.css 
admin 
    index.php 
user 
    index.php 
index.php 

まず、絶対パスなどを使用してみました。 a href = "/user/index.php"しかし助手は私の大学のホームページに私のindex.phpではないと警告しました。 私が相対リンクを使用している場合、その半分がインクルードに対して機能します。

私の環境では悲しいことですが、私の学校でアップロードされたときはそうではありませんので、私が課題をアップロードして訂正しようとするまでにどのように振る舞うかわかりません。

今、ほとんどすべてのページにインクルードを使用しています。 include(__DIR__.'/app.cfg.php')と思われます。 私はリンクで同じことをすることができますか?私はどこかで同じことをしていないことを読んだ。

+0

いいえ、リンクには使用できません。 '__DIR__'は現在のファイルが置かれているサーバ上のフォルダへの絶対パスを与えます。これはURLとは関係ありません。 –

+0

できますか?あなたはそれを試しましたか? –

答えて

0

あなたは絶対リンクがうまくいく「root」(localhost?)のように見えますが、サイトがあなたの学校のサーバーで設定されると、絶対リンクはサブディレクトリの代わりに学校のドメインを指します。あなたのプロジェクトはです。

<base>タグは相対リンクと組み合わせて使用​​してください。あなたのcss/js/imagesを台無しにする可能性があるので、すべてのパスを相対的に更新する必要があります(/で始まらない)。ここに例があります:

<html> 
    <head> 
    <base href="http://example.com/"/> 
[...] 
<a href="dir/page.html">link</a> 

上記のリンクはhttp://example.com/dir/page.htmlを指します。基本的には、baseタグにURLを設定すると、あなたのウェブサイトの「ルート」は何であり、すべての相対リンクがそれを尊重します。 baseの値をサイトの設定に保存してテンプレートにエコーすることができます。サイトが別のサーバに設定されていると、設定ファイルを更新してすべてのリンク/ images/css/etcが動作します。

関連する問題