伙计们,我有一个laravel项目,它的工作正常。每次我通过键入命令php artisan serve
然后在浏览器中键入URL localhost:8000
来启动项目。但现在我只想输入网址localhost/projectname
来启动我的项目。
所以我做了一些挖掘并找到了一种方法来实现这一点,我通过将server.php文件从根目录更改为index.php并将htaccess文件从公共文件夹复制到根目录来实现。 。这样我的浏览器只加载了html文件或php文件,但是没有加载css文件和js文件所以我不得不修改刀片文件上的链接,例如:
以前,style.css文件链接为:
<link rel="stylesheet" type="text/css" href="{{asset('front_end/assets/css/style.css')}}">
现在我链接相同的style.css文件,如下所示:
<link rel="stylesheet" type="text/css" href="{{asset('/public/front_end/assets/css/style.css')}}">
它工作正常。
但是现在我发现了另一个问题,我已经在storage/app/public/myfolder
目录中存储了一些文件(图像),以便访问我必须使用命令php artisan storage:link
命令的文件并访问文件(图像)来自刀片文件中的上述目录我使用下面的代码:
<img src="{{$url = Storage::url('myfolder/'.$company->logo_name)}}">
这段代码只在我以前使用php artisan serve
命令启动项目时才起作用。现在我没有链接所以我该怎么办?您也可以告诉我,我将server.php
文件更改为index.php
的方式是正确的吗?你们在实际项目中做了什么?
谢谢。
答案 0 :(得分:3)
部署Laravel项目时,您希望nginx
或apache
配置指向项目的public
路径。无需更改server.php
或index.php
文件。
<VirtualHost *:80>
ServerName project.dev
DocumentRoot "/home/vagrant/projects/project/public"
<Directory "/home/vagrant/projects/project/public">
AllowOverride all
</Directory>
</VirtualHost>
正如您在此apache
配置示例中所看到的,它指向项目的公共目录。
您可以在本地计算机上安装Apache
或nginx
来在本地实现此目的。
我建议您遵循Laravel关于使用Vagrant的Homestead的文档指南,以便在您决定在服务器上运行之前了解这是如何工作的。 A link here
您可以采取几种方法来实现基本相同的目标。这取决于您运行的机器和个人偏好。
答案 1 :(得分:1)
您不需要修改任何文件。
你需要其中一个:
如果您决定使用Web Server,则只需要考虑指向project/public
文件夹而不是project
。
使用其中一个选项,您不需要修改资源网址,因为public
在任何情况下都不应该成为网址的一部分。
答案 2 :(得分:0)
首先,不要在server.php文件中做任何调整,没关系。 要使用类似http://localhost/my-project.dev或仅http://project.dev的网址运行项目,请使用WAMP或XAMPP(如果在Windows计算机上工作)和Linux灯。您也可以查看Laravel的家园。
然后设置虚拟主机。 请参阅this教程,了解如何在WAMP上设置虚拟主机 - http://www.coderomeos.org/how-to-set-up-virtual-host-on-wamp-server
并且不要将您的资产放在公共/资产文件夹中以防止使用存储链接。