【问题标题】:Codeigniter4: pictures with correct paths in html are not loadingCodeigniter4:html中路径正确的图片未加载
【发布时间】:2020-03-29 22:44:44
【问题描述】:

我有来自教程文档的简单 codeigniter4 项目设置:https://codeigniter4.github.io/userguide/tutorial/static_pages.html

问题是即使 src 路径正确,浏览器也不显示图片。正如您在下面看到的,我尝试使用 url helper,尝试了相对路径,但没有任何效果。我什至删除了 .htacces 文件,但仍然没有。重要的是这是 codeigniter 问题,因为我在我的 vanilla 项目中尝试过它并且它有效。

<img src="<?php echo base_url('/public/imgs/glacier.jpg')?>" alt="glacier">
<img src="/public/imgs/orbs.jpg" alt="orbs">

我的图片在 public/imgs 文件夹中。 这是来自浏览器控制台的错误:

Loading failed for the <script> with source “http://localhost:8080/codeigniter4/index.php?debugbar”. home:6:1

我才开始使用 codeigniter4,所以这真的让我很沮丧。它让我发疯:(

PS.我希望我已经提供了所需的所有信息,因为这是我的第一个问题。 我期待着答案:)

【问题讨论】:

  • 为什么路径中有“public”?如果设置正确,路径应该是 /imgs/glacier.jpg。
  • 一开始我尝试将图片放在/imgs,但它也不起作用
  • 您的服务器设置如何?公共文件夹是“Document_Root”。确定这一点的一种方法是执行 var_dump ($_SERVER) 并查看 DOCUMENT_ROOT 条目是什么。
  • ["DOCUMENT_ROOT"]=> 字符串(17) "/opt/lampp/htdocs"

标签: php html codeigniter-4


【解决方案1】:

base_url();输出您在 config 文件夹下的 App.php 文件中添加的路径 当你打开 App.php 你会发现

public $baseURL = 'http://localhost:8080/' 
 

将此更改为您的首选路径 例如: public $baseURL ='http://your-domain-name/your-project-name/

【讨论】:

    【解决方案2】:

    也许它可以帮助你尝试这个

    src="'<?php echo base_url() ?> '/public/imgs/glacier.jpg"
    

    【讨论】:

    • 你检查什么是base_url输出
    • output:localhost:8080 但我的相对 src 也不起作用
    【解决方案3】:

    好的,我将其粘贴为 src,它可以工作:http://localhost/codeigniter4/imgs/glacier.jpg

    但我仍然不明白为什么相对路径不起作用,我想知道什么是管理 src 链接的正确方法。

    【讨论】:

    • 请 - 从您的浏览器查看您的 HTML 源代码 - 通常是鼠标右键 -> 查看源代码。所以你可以看到实际生成的 HTML。这是在这种情况下要做的第一件事......看看链接是什么。这会告诉你很多。查看您的 HTML 源代码以确保您的所有 HTML 正确无误应该是一种习惯。
    • 这是我在查看来源时发现的:&lt;img src="http://localhost:8080/public/imgs/glacier.jpg" alt="glacier"&gt; &lt;img src="/public/imgs/orbs.jpg" alt="orbs"&gt;
    • 我知道现在有什么问题了。很抱歉用这么愚蠢的问题打扰您。问题是我完全搞砸了链接,因为我没有添加项目的根目录。谢谢你非常有帮助:)
    • 这发生在我们最好的人身上。但是现在你知道了一个检查事情的新技巧,所以一切都很好:)
    • 还有一点需要注意的是,我已经用这个编辑了 .env 文件:app.baseURL = 'localhost/codeigniter4' 所以现在 base_url 包含这个链接。现在我可以做 base_url("/imgs/img.jpg") 这是正确的方法吗?是的,再次感谢你真棒:)
    【解决方案4】:

    好的,我希望能帮上忙。

    在 CI4 中我使用 base_url()。

    base_url('images/something.png')
    

    避免使用波纹管。

    base_url('public/images/something.png')
    

    如果您仍然遇到问题,请仔细检查您的基本网址

    请记住,CI4 是新发布的,您可能会遇到可能让您抓狂的问题。但是它的发展很好。

    避免使用相对

    我希望这会有所帮助。

    祝你好运。

    【讨论】:

    • 感谢您的回答。问题是我没有正确设置我的 .etc 文件,所以 base_url 指向本地主机根。现在它工作正常:)
    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 2015-08-07
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多