【问题标题】:Laravel returns 404 to all files inside public/Laravel 对 public/ 中的所有文件返回 404
【发布时间】:2022-01-23 23:35:15
【问题描述】:

我下载了一个在家工作的项目。 我设法让它启动并运行,但两天后我的头撞到墙上我不能,因为我一生都在弄清楚以下错误:

“获取 http://127.0.0.1:8000/public/site/assets/js/jquery-3.3.1.min.js 状态 404 未找到”

公用文件夹中的每个文件都会发生这种情况。有趣的是,如果我调用程序中的每个asset('/public/site') 并只删除/public,留下asset('/site'),它就可以正常工作。

我假设这是因为文件的根文件夹是 /app/public 并且 assets() 正在寻找 /public/site,它基本上返回 /app/public/public 路径,即使它没有出现在 GET 标头中。这有意义吗?

我尝试强制将 ASSET_URL 设置为仅“/”。如果我这样做,文件显然已找到但未加载,给出错误“用于获取此资源的连接不安全”并且什么也不返回。 任何帮助将不胜感激,我正在失去理智。

【问题讨论】:

  • 文档根目录应该指向公用文件夹...当前设置为什么?
  • 当前设置为公用文件夹。 (由于不知道怎么查看,所以测试了一下,新建一个php文件,放到public,通过localhost/fliename.php访问,找到了。)
  • 如果您有 xampp,请尝试将项目粘贴到 htdocs 中并访问 localhost/project/public
  • 这在 Apache 中有效吗?我没有 xampp。

标签: laravel permissions apache2


【解决方案1】:

public 不应出现在 URL 中,因为那是提供网站的位置。

目前,http://127.0.0.1:8000/ 应该指向public/index.php

如果是,您只需在资产 URL 中省略 public

【讨论】:

  • 感谢您的回答!我从服务器上获取了这个项目,所以我可以测试本地文件夹中的一些东西(我是一个非常非常小的团队的新员工)。由于这将不再在服务器中运行并且只是本地的,我是否可以简单地将根文件夹提升一级? (作为应用程序而不是公共的根文件夹)。在资产调用中大约有 300 次提及 public。
  • 您可以在“public”文件夹中放置一个“public”文件夹...然后您将拥有您想要的路径。
【解决方案2】:

经过深思熟虑和研究,我发现我下载的项目的 Laravel 版本非常过时,asset() 函数非常非常糟糕。

将资产的每次使用都更改为 Storage::url 既费力又烦人,但解决了所有问题。

谢谢大家的回复!

【讨论】:

    猜你喜欢
    • 2020-08-25
    • 1970-01-01
    • 2017-12-05
    • 2020-01-28
    • 2022-01-06
    • 1970-01-01
    • 2015-08-31
    • 2014-07-31
    • 2013-09-18
    相关资源
    最近更新 更多