Laravel 相对路径在本地主机上未按预期工作

Laravel relative paths not working as expected on localhost

我只是为我的本地主机使用 Mac OS 的本机 apache2 服务器。在我的 httpd.conf 文件中,我设置了

DocumentRoot "/Users/user_name/Local Sites/"

...该目录包含我在本地工作的所有网站:

Users
 -user_name
  --Local Sites
   ---site_1
   ---site_2
   ---site_3
   ---site_4

因此,对于 site_1 的特定 Laravel 项目,我在 .env 中设置了以下内容:

APP_URL=http://localhost/site_1

...在 config/app.php 中再次出现:

'url' => env('APP_URL', 'http://localhost/site_1'),

但是,当我尝试使用 Laravel 的相对路径构建器之一时,它包括整个路径 以上 我定义为我的文档的根和服务器的本地主机。例如:

public_path() = /Users/user_name/Local Sites/site_1/public

然后,问题是当我使用那个变量,比如说,link 到 public/js 中的一个 .js 文件时,生成的路径是

http://localhost/Users/user_name/Local%20Sites/site_1/public

...当然是无效的,因为正确的路径确实是

http://localhost/site_1/public

我确定我在做一些愚蠢的事情,但我太愚蠢了,无法弄清楚它是什么! 当我明确解析这些路径时,我的网站可以正常工作,但是然后当然当我发布到我的网络主机时一切都会中断(使用绝对路径而不是相对路径)。

不要混合使用辅助函数 publich_path() 和 assets()。

您应该 link 您的 JS/CSS/Img 以下方式:

<script src="{{asset('js/main.js')}}"/>

Laravel 会将调用转换为

<script src="http://localhost/site_1/js/main.js"/>