1

私はプロジェクトに取り組んでいます。Web サイトを管理するためのコントロール パネルです。フォルダ構造は次のようになります。

    • 画像
    • CSS
    • js
    • モジュール
      • ユーザー
      • カテゴリー
      • 等..
    • index.php
    • config.php

構成ファイルでいくつかの設定を行いました。それらのいくつかは次のとおりです。

$site_url = $_SERVER['SERVER_NAME'];
define ('ABSPATH', 'http://'.$site_url.'/cpanel');

ABSPATHそれで、私の質問は次のとおりです:定数とすべての<a>タグに関連するすべてのリソース(画像、css、js)をどのようにロードできますか?

これにより、「cpanel プロジェクト」を別のディレクトリ レベルに移動でき、引き続き機能します。WordPress のブログのように、ブログの URL を設定するだけです。

4

4 に答える 4

3

phpビューでこのようなことをしませんか?

<script type="text/javascript" src="<?= ABSPATH ?>/my_js_file.js"></script>
<link rel="stylesheet" type="text/css" href="<?= ABSPATH ?>/my_css_file.css">

<img src="<?= ABSPATH ?>/my_image_file.jpg" />

このようにして、ディレクトリをdocroot内の任意の場所に移動し、構成ABSPATHファイルのの値を変更することができます。

于 2012-12-18T20:10:10.213 に答える
2

URL を持つことはインクルードなどの目的には役に立たないため、おそらくいくつかの異なる変数を定義するのが最善の方法です。次のようなことができます。

DEFINE(HOST_NAME, $_SERVER['SERVER_NAME']);
DEFINE(WEB_SERVER_ROOT, $_SERVER['DOCUMENT_ROOT']);
DEFINE(APP_ROOT, __DIR__);
DEFINE(URI_BASE, str_replace(WEB_SERVER_ROOT, '', APP_ROOT);
if ($_SERVER['HTTPS'] == 'on') {
    DEFINE(PROTOCOL, 'http');
} else {
    DEFINE(PROTOCOL, 'https');
}
DEFINE(URL_BASE, PROTOCOL . '://' . URI_BASE);

インクルードの場合、次のようなことができます:

include(APP_ROOT . '/modules/somefile.php');

画像、javascript、css などのリンクを出力するには、次のようなものを使用できます。

<img src="<?php echo URL_BASE; ?>/images/someimage.jpg" />
<a href="<?php echo URL_BASE; ?>/somepage">Some Page</a>
<script type="text/javascript" src="<?php echo URL_BASE; ?>/js/somejs.js" />
于 2012-12-18T20:21:21.847 に答える
1

あなたが言っていることを行うにはいくつかの方法がありますが、最も簡単な方法の1つは、BASEタグを使用することです。

<head>
<base href="http://www.yoursitewithimages.com/folder-with-files/" target="_blank">
</head>

その後、あなたはただ使うことができます

<img src="img/image.jpg">

そしてそれはとして読まれます

<img src="http://www.yoursitewithimages.com/folder-with-files/img/image.jpg">

詳細はこちらhttp://www.w3schools.com/tags/tag_base.aspまたはこちらhttp://www.w3.org/TR/html-markup/base.html

于 2012-12-18T20:09:36.357 に答える
0

これは、Mike Brant のソリューションに基づく代替案です。

//APP_ROOT and APP_BASE assumes that the current location of this 
//script is located in the root of your application.  
//Also assumes that the HOST_NAME is what you want in the URL.  
//See https://php.net/manual/en/reserved.variables.server.php for reference 
define('HOST_NAME', $_SERVER['HTTP_HOST']);
(empty($_SERVER['HTTPS'])) ? define('PROTOCOL', 'http') : define('PROTOCOL', 'https');
define('WEB_SERVER_ROOT', $_SERVER['DOCUMENT_ROOT']);
define('APP_ROOT', __DIR__);
$appBase = str_replace(pathinfo(__FILE__, PATHINFO_BASENAME), '', $_SERVER['SCRIPT_NAME']);
define('URL_BASE', PROTOCOL . '://' . HOST_NAME . $appBase);
于 2015-04-28T18:13:52.497 に答える