我正在维护一个旧的应用程序,这是我几年前第一次使用Laravel(版本7.x)时创建的。
最近,我从WAMP迁移到Docker作为我的本地开发环境。当时,我不知道storage:link命令,所以一些CSS和JS文件的URL结构如下:
<link href="{{asset('storage/app/public/assets/css/style.css')}}" rel="stylesheet">
<script src="{!! asset('storage/app/public/assets/js/settings.js') !!}"></script>
字符串
一切都在生产服务器(共享服务器)上完美工作,并在WAMP设置的本地环境中工作。
然而,当我切换到Docker时,存储文件夹变得不可访问。我考虑重构代码以使用storage:link,但不幸的是,storage:link在我的共享服务器上不起作用。
所以,我决定让它保持原样,直到我将应用程序移动到VPS。问题是,我不能让这些URL在Docker中本地工作。我想知道它们在生产中是如何工作的,所以必须有一种方法让它工作。我搜索了网络,但找不到任何关于如何做到这一点的线索。你有什么想法吗?
2条答案
按热度按时间hgc7kmma1#
Looks like this issue
为了让它工作,Nginx容器必须能够访问存储文件夹,因为它应该为位于那里的资产提供服务。我猜目前情况并非如此,只有公共文件夹被挂载。
检查是否整个项目或./public和./storage都挂载到Nginx容器中。
就像这样:
字符串
ukqbszuj2#
如果任何人遇到这个问题,我已经找到了解决方案,通过在本地创建存储链接,就像这样的文件系统. php
字符串