1

我已经阅读了 [Laracasts 线程] 上的一个线程(https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-laravel-5?page=2)但没有确定当前正确的解决方案,尤其是对于 Laravel 5.5 吗?(注意:除了选择要使用的 Php 版本和少数 ssh 命令 [我可以访问的目录有限] 之外,我无权更改任何配置服务器端)。

我的案例:使用共享主机,所以我的公共目录是

/home/{mycomputer generated user}/public_html/

最初我将 Laravel 目录上传到 public_html 文件夹中。该系统处理将 URLwww.mydomain.xyz/public/作为 root 的 URL 的怪癖。

然后我尝试了这种修改路径的方法:

  1. 将所有文件移出public_html文件夹以与文件夹具有相同的级别public_html

所以文件夹(在我以前的 laravel 文件夹中)驻留在此处:

/home/{mycomputer generated user}/

  1. 将内容复制/public/public_html

  2. 修改了index.php内容/public_html

从: require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php';

至: require '/home/{my user}/vendor/autoload.php'; $app = require_once '/home/{my user}/bootstrap/app.php';

现在我的主页加载正常(欢迎查看),如我的 web.php 路由文件中所述

Route::get('/', function () { return view('welcome'); });

==================================================== ==================

我的问题:

但是,任何其他路线都会失败

“未找到

/{legitimate route}在此服务器上未找到请求的 URL ”

我需要做的任何其他步骤?

我试过: 1. 加载一个存储在 public_html 文件夹中的简单 jpg 文件,效果很好(mydomain.xyz/test.jpg)

  1. 更改了根路径以返回无效视图,这引发了 Laravel 错误

Route::get('/', function () { return view('test'); });

"InvalidArgumentException View [test] not found."

  1. 尝试使用闭包(而不是使用控制器)返回合法视图 - 无效

Route::get('/main', function () { return view('tempview.main'); });

我错过了什么?.htaccess 更改?我需要更改公共路径的另一个地方?

4

1 回答 1

2

我的回答取决于您的尝试:

步骤 1. 将 index.php 和 .htaccess 从 public 复制到 public_html,这意味着进入根文件夹。

Step 2. 将 index.php 修改为 public_html 文件夹

From: require __DIR__.'/../vendor/autoload.php';

To: require __DIR__.'/vendor/autoload.php';

From: $app = require_once __DIR__.'/../bootstrap/app.php';

To: $app = require_once __DIR__.'/bootstrap/app.php';
于 2017-11-17T18:52:09.987 回答