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 文件/文件夹未显示在公共目录中的主要内容,如果未能解决你的问题,请参考以下文章
为啥我得到一个 404 到 laravel 5.7 公共子文件夹?