在不使用工匠服务的情况下运行laravel项目的最佳方法是什么?

时间:2017-10-23 13:42:05

标签: php laravel .htaccess

伙计们,我有一个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的方式是正确的吗?你们在实际项目中做了什么?

谢谢。

3 个答案:

答案 0 :(得分:3)

部署Laravel项目时,您希望nginxapache配置指向项目的public路径。无需更改server.phpindex.php文件。

Apache配置示例:

<VirtualHost *:80>
   ServerName project.dev
   DocumentRoot "/home/vagrant/projects/project/public"
   <Directory "/home/vagrant/projects/project/public">
      AllowOverride all
   </Directory>
</VirtualHost>

正如您在此apache配置示例中所看到的,它指向项目的公共目录。

您可以在本地计算机上安装Apachenginx来在本地实现此目的。

我建议您遵循Laravel关于使用Vagrant的Homestead的文档指南,以便在您决定在服务器上运行之前了解这是如何工作的。 A link here

您可以采取几种方法来实现基本相同的目标。这取决于您运行的机器和个人偏好。

答案 1 :(得分:1)

您不需要修改任何文件。

你需要其中一个:

  • 本地安装的Web服务器,Apache或Nginx
  • 用于运行项目的Vagrant虚拟机,如Homestead等生产环境中的
  • Valet

如果您决定使用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

并且不要将您的资产放在公共/资产文件夹中以防止使用存储链接。