アセットフォルダーに「image.jpg」が保存されており、パスが「www.example.com/public」であり、画像への文字列パスのみが必要だとします。どうすれば入手できますか? htmlタグにパス文字列だけが必要なわけではありません。
さまざまな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 -include- http://example.com 'fullBase' => true、 'pathPrefix' => IMAGES_URL ));
テーマを使用している場合でも機能します
次を使用できます。
$this->webroot.'img/abc.jpg'
$ this-> webrootは、アプリの現在のパスを提供します。
$this->Html->url('/img/image.jpg') // returns /cake/app/img/image.jpg
オプションで、完全なベースURLの例にtrue
を渡します。 (mysite.com/cake/app/img/image.jpg
)
WWW_ROOT . 'img/image.jpg' // full/path/to/webroot/img/image.jpg
CakePHPバージョン3では、URLヘルパーを使用できます。
$this->Url->build('/img/image.jpg');
CakePHPでは、通常、画像はwebroot/imgフォルダーに保存されます。
これは link に役立ちます。
HtmlHelper::image(string $path, array $options = array())
パラメーター:
$path (string) – Path to the image.
$options (array) – An array of html attributes.
これが役に立つと思ってください。
cakephp 2.0+によって提供されるこの定数を確認してくださいFULL_BASE_URL
ここをクリック すべてを知る
例: http:// localhost:8080/ninavendas/rhhealth_vendas/pessoa/importar
Cake 3+では次を使用できます:$ this-> request-> webroot
戻り値:/ ninavendas/rhhealth_vendas /
fullBase
オプション-戻り値ドメイン名を含む完全なURL:
$this->Url->image('image.jpg', ['fullBase'=>true]);
私は使うだろう
$this->Html->url('/', true).'img/image.jpg';
CakePHP 3
cake\Routing\Routerを使用します。
<img src="<?php echo Router::url('/', true); ?>/img/name.jpg" />
CakePHP 3.5の時点で、最良のオプションは次のとおりです。
$imgUrl = Cake\Routing\Router('/', true) . 'img/' . $imageName;
プラグインスコープ内の場合、$this->webroot
は収まりません。
それが誰かを助けることを願っています。