Laravel 文件/文件夹未显示在公共目录中

Posted

技术标签:

【中文标题】Laravel 文件/文件夹未显示在公共目录中【英文标题】:Laravel files/folders not showing up in Public directory 【发布时间】:2021-03-18 02:50:45 【问题描述】:

我想将 TradingView 的图表库集成到我的 Laravel 项目中。 我已将 charting_library 文件夹复制到 Laravel 的 Public 文件夹中。 之后,我在视图中引用了 Blade 文件中的 charting_library.min.js 文件以及与之相关的其他资源。

<script type="text/javascript" src=" asset('tradingview/charting_library/charting_library.min.js') ">

所有 js 文件都加载成功,但是问题是这个 charting_library.min.js 从一个子目录调用一个 html 文件,它返回一个 404 Not Found 错误。

http://localhost:8000/charting_library/static/fa-tv-chart.37***ee.html 404 (Not Found)

这是文件/文件夹结构: 我已经从 chrome 的开发工具中检查了加载的资源。 Laravel 会加载这些引用的 JS 文件,但不会加载这些文件请求的任何其他文件,只返回 404。 charting_library 文件夹存在于目录中,它只是与 Laravel 相关的东西。我认为它看不到目录的内容。 我已尝试修改 .htaccess 文件,但仍然没有成功。 我什至尝试通过 Webpack 混合 charting_library.min.js,更改自动加载,但仍然没有任何反应。

【问题讨论】:

您是否尝试过在本地虚拟主机(如 apache)上运行您的网站? 那么JS库文件的URL是什么?您可以在浏览器中访问http://localhost:8000/charting_library/static/fa-tv-chart.37***ee.html 吗?为什么 JavaScript 文件会尝试使用非相对 URL 访问文件? 【参考方案1】:

我通过以下方式解决了这个问题:

    将项目移动到 wamp 的 www 文件夹。

    将 charting_library 和 datafeeds 文件夹移动到 laravel 的 public 根目录。它似乎 tradingview 的小部件构造函数使用相对路径进行构建 整个图表。因此,当您将 charting_library 放在文件夹中时, 它不解决其他资产。这些文件夹应该正好在 根。

【讨论】:

感谢@babak-ashrafi 的评论。它让我走上了正确的道路。

以上是关于Laravel 文件/文件夹未显示在公共目录中的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 文档多次上传未保存到数据库

为啥我得到一个 404 到 laravel 5.7 公共子文件夹?

Laravel 拒绝访问 /public 目录

403 从公共/图像文件夹 laravel vuejs xampp 加载图像时禁止

每条路由都在共享主机上显示 404 消息

如何在 laravel 刀片中显示 iframe