Laravel项目文件路径在MAMP与WAMP环境下表现不一致的技术咨询
解决MAMP/WAMP下Laravel项目路径不一致的问题
嘿,这个问题核心原因就是MAMP和WAMP的文档根目录配置不一样,导致你在两个环境里访问项目的URL前缀不同,资源路径也跟着出问题。我给你几个实用的解决办法,从根本解决到临时适配都有:
调整WAMP的文档根目录(最快统一环境)
既然你在家用MAMP时把根目录直接指向了Laravel的public文件夹,那在学校的WAMP里也这么设置就行:- 打开WAMP管理器,右键点击托盘图标,选择「Apache」→「httpd.conf」
- 找到
DocumentRoot和<Directory>这两行,把它们的路径改成C:\wamp\www\LaravelProject\public - 保存文件后重启WAMP服务,之后访问
localhost:8080就能直接打开项目,JS文件也能像家里一样直接通过localhost:8080/js/xxx.js访问了
配置虚拟主机(专业多项目方案)
如果学校电脑里还有其他项目,不想改全局根目录,那给Laravel单独配个虚拟主机是更好的选择,而且家里的MAMP也能这么配,彻底统一访问方式:- 打开本地hosts文件(路径是
C:\Windows\System32\drivers\etc\hosts),添加一行:127.0.0.1 laravel.test - 在WAMP里打开Apache的虚拟主机配置文件(「Apache」→「httpd-vhosts.conf」),添加以下配置:
<VirtualHost *:8080> DocumentRoot "C:\wamp\www\LaravelProject\public" ServerName laravel.test <Directory "C:\wamp\www\LaravelProject\public"> AllowOverride All Require all granted </Directory> </VirtualHost> - 重启WAMP后,访问
laravel.test:8080就能打开项目,家里的MAMP也可以照搬这个配置,以后不管在哪都用同一个域名访问,资源路径完全一致
- 打开本地hosts文件(路径是
用Laravel辅助函数生成资源路径(临时适配)
要是暂时不想改服务器配置,那在项目代码里统一用Laravel的asset()辅助函数来生成资源URL就行:
比如原本你写<script src="/js/app.js"></script>,改成:<script src="{{ asset('js/app.js') }}"></script>这个函数会自动根据当前环境的根目录生成正确的URL,在MAMP下会输出
localhost:8080/js/app.js,在WAMP下会输出localhost:8080/LaravelProject/public/js/app.js,不用你手动调整路径
内容的提问来源于stack exchange,提问作者Onyx
相关产品推荐
相关产品推荐

