Laravel:生产路径和本地路径之间的差异;需要使用公共服务吗/
我在生产过程中遇到了与Laravel的路径问题,而在本地一切都运行得很好Laravel:生产路径和本地路径之间的差异;需要使用公共服务吗/,laravel,path,hosting,font-awesome,production,Laravel,Path,Hosting,Font Awesome,Production,我在生产过程中遇到了与Laravel的路径问题,而在本地一切都运行得很好 托管服务:Hostinger 拉威尔:5.8 这涉及使用的相对路径,要求在生产时在任何资源使用的路径中具有public/ 如果以CSS工作表为例,本地,我将使用以下代码: 在生产中,我必须为路径添加public/,否则无法检测到图纸: 现在,我使用一个全局变量(在控制器类中),如果应用程序正在生产中,则使用该变量,这样在我投入生产时就不必对代码进行任何更改: href=“{{asset($public_prod
- 托管服务:Hostinger
- 拉威尔:5.8
public/
如果以CSS工作表为例,本地,我将使用以下代码:
在生产中,我必须为路径添加public/
,否则无法检测到图纸:
现在,我使用一个全局变量(在控制器类中),如果应用程序正在生产中,则使用该变量,这样在我投入生产时就不必对代码进行任何更改:
href=“{{asset($public_prod.css/style.css')}}”
但问题是,我必须将此变量放在所有资源(图像、CSS、JS…)上,否则,资源不会显示
此外,一些资源(如字体真棒字体)不会与CSS工作表一起加载,即使检测到该工作表,也只显示unicode矩形。我的解决方案并不完美
注意:我的应用程序在Heroku服务的生产环境中运行良好,而无需向资源路径添加public/
,我不知道为什么在Hostinger服务上不一样…多亏了MaartenDev
解决方案:
- 在Laravel的根目录下编辑
,并将所有内容替换为:.htaccess
重新启动发动机
重写规则^(.*)$public/$1[L]
- 在根目录下创建
的副本,并将其重命名为server.php
index.php
本地主机和生产将工作 您将把所有css和js以及其他库放在公用文件夹中。然后运行此代码,如果您想删除url中的公用文件夹,那么可以在helper.php文件中创建类似于编写此代码的函数asset($path,$secure=null){return app('url')->asset($public/“$path,$secure);}。如果我使用此解决方案,您的.htaccess在hostinger上工作时不工作吗?您的站点似乎只是因为
public
文件夹中有一个index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>