アセットフォルダーに「image.jpg」が保存されていて、パスが「www.example.com/public」で、画像への文字列パスのみが必要だとしましょう。どうすれば入手できますか? パス文字列のみのhtmlタグは必要ありません。
16 に答える
CakePHP のさまざまなグローバル定数 (ROOT、WEBROOT_DIR、WWW_ROOT、CSS など) を試しても結果が得られなかった後、一般的な解決策は、アプリケーションの webroot へのパスを返す $this->webroot プロパティにあるようです。したがって、上記のさまざまなケースで、レイアウト、ビュー、または要素に含まれる可能性があります。
シンプルな画像タグ:
<img src="<?php echo $this->webroot; ?>img/foo.gif" .../ >
古い方法でのテーブル セル内の背景画像:
<td background="<?php echo $this->webroot; ?>img/foo.gif">
type="image" の入力:
<input type="image" src="<?php echo $this->webroot; ?>img/go_btn.gif" ... />
I think webroot always work
のソース コードをHtmlHelper::image()
調べて、このヘルパーが正しい URL を作成する方法を確認してください。少し変更すると、次のようになります。
$imageUrl = $this->assetUrl('image.jpg', array(
// note: only required if you need the
// URL -including- http://example.com
'fullBase' => true,
'pathPrefix' => IMAGES_URL
));
Helper::assetUrl() のソース コードは次の場所にあります: https://github.com/cakephp/cakephp/blob/2.3.2/lib/Cake/View/Helper.php#L305
CakePHP 3 (バージョン 3.2.4 以降) では、url/image ヘルパーを使用できますが、パスは必要ありません:
$this->Url->image('image.jpg');
または他の資産:
// Outputs /js/app.js
$this->Url->script('my.js');
// Outputs /css/app.css
$this->Url->css('my.css');
$imageUrl = $this->Html->assetUrl('image.jpg', array( // 注: 必要な場合にのみ必要です // URL -含む- http://example.com 'fullBase' => true, 'pathPrefix' => IMAGES_URL ));
これは、テーマを使用している場合でも機能します
$this->Html->url('/img/image.jpg') // returns /cake/app/img/image.jpg
true
必要に応じて、完全なベース URL のサンプル 1 に渡します。( mysite.com/cake/app/img/image.jpg
)
WWW_ROOT . 'img/image.jpg' // full/path/to/webroot/img/image.jpg
以下を使用できます。
$this->webroot.'img/abc.jpg'
$this->webroot は、アプリの現在のパスを提供します。
CakePHP バージョン 3 では、url ヘルパーを使用できます。
$this->Url->build('/img/image.jpg');
Cakephp 2.0+ によって提供されるこの定数を確認してくださいFULL_BASE_URL
すべてを知るにはここをクリック
私は使うだろう
$this->Html->url('/', true).'img/image.jpg';
CakePHP 3
Cake\Routing\Router を使用します。
<img src="<?php echo Router::url('/', true); ?>/img/name.jpg" />
自分でパスを作成する必要があると思います。ファイルの名前とそれが存在するディレクトリがわかっている場合、次のことを妨げているのは次のとおりです。
$imageUrl = sprintf("%s/%s/%s", FULL_BASE_URL, "public", $imageName);
// this produces http://www.example.com/public/image.png