如何避免在CakePHP中的每个资产中包含根目录?

时间:2016-05-12 13:52:41

标签: php cakephp cakephp-3.x

我在CakePHP 3.1的View文件中的任何CSS或JS链接之前写<?php echo $this->Url->build(['/'); ?>。有没有办法摆脱这种技术。例如,在../src/template/test/index.ctp

<img src="<?php echo $this->Url->build('/'); ?>images/seointro_logo.png" alt="logo">

我希望每个链接都适用于编写根目录。我看到所有文件在webroot中没有此代码但在src中没有。

2 个答案:

答案 0 :(得分:0)

改变这个:

<img src="<?php echo $this->Url->build('/'); ?>images/seointro_logo.png" alt="logo">

进入这个:

<?php echo $this->Html->image('/images/seointro_logo.png', ['alt' => 'logo']); ?>

正如burzum所说,你应该查看CakePHP提供的HTML Helpers: http://book.cakephp.org/3.0/en/views/helpers/html.html

答案 1 :(得分:0)

使用html助手

<?= $this -> Html -> image('image.png', ['alt' => 'logo']); ?> // img/image.png

<?= $this -> Html -> script('Pages', ['block' => true])?> // js/Pages.js

<?= $this -> Html -> css('pages', ['block' => true]); ?> //css/pages.css

不要忘记在布局文件中添加相应的获取

<?= $this -> fetch('css') ?>
<?= $this -> fetch('script') ?>

如果更改了defauls文件夹的名称,则必须在 config / app.php

中进行更改
'App' => [
    ...
    'webroot' => 'webroot',
    'imageBaseUrl' => 'img/', //<--- change img/ to yourImagesFolder/
    'cssBaseUrl' => 'css/',   //<--- change css/ to yourCssFolder/
    'jsBaseUrl' => 'js/',     //<--- change js/ to yourJsFolder/
    ....

],