2 回答
TA贡献1828条经验 获得超4个赞
目前您在 src 中没有输出。您需要回显或打印文件路径:
它应该显示(注意回声):
<img src="<?php echo asset('images/image1.jpg');?>"/>
这也是一个完整的文件路径,可能与协议相关。因此可能会被缝合到您的域名上。例如 http://example.com/path/from/file/system/root/to/assets/images/image1.jpg
。如果您包含该file://
协议,则在某些浏览器上在您自己的站点上进行本地开发时,它可能会起作用,但由于原始策略的原因,可能无法起作用。它肯定无法在公共网络服务器上运行。
例如/var/www/example.com/assets/image.png
是一个文件路径,如果文档根目录是/var/www/example.com
我们可以用作/assets/image.png
网络路径。
我建议将所有资产与文档或项目根目录相关。
您可以在项目引导程序中使用一个简单的常量来代替类似的内容:
<?php define('ASSET_ROOT', '/assets'); ?>
那么你的 src 就变成了:
<img src="<?= ASSET_ROOT . '/images/image1.jpg'; ?>"/>
(这里使用短回声<?=
代替<?php echo
。)
这给了你一些灵活性。您稍后可以将其替换为以下内容:
<?php define('ASSET_ROOT', '//cdn.example.com/assets'); ?>
您当前的资产路径也与包含您的函数的脚本相关。如果你移动它,你就必须重写你的函数。该常量的开销较小。
拥有相对于固定根的资产,仅沿着树向下移动,要简单得多,也不需要考虑。
TA贡献1853条经验 获得超6个赞
asset 函数的问题是DIR返回本地文件路径,我应该返回的是服务器 url。因此,我替换了这一行
"__DIR__.'/../../../resources/assets/'.$url";
和
http://server_host/resources/assets/".$url
就我而言是
http://localhost/project/resources/assets/".$url
并返回该行并且它有效。
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报