我已经阅读了 [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 的怪癖。
然后我尝试了这种修改路径的方法:
- 将所有文件移出
public_html
文件夹以与文件夹具有相同的级别public_html
。
所以文件夹(在我以前的 laravel 文件夹中)驻留在此处:
/home/{mycomputer generated user}/
将内容复制
/public
到/public_html
修改了
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)
- 更改了根路径以返回无效视图,这引发了 Laravel 错误
Route::get('/', function () {
return view('test');
});
"InvalidArgumentException
View [test] not found."
- 尝试使用闭包(而不是使用控制器)返回合法视图 - 无效
Route::get('/main', function () {
return view('tempview.main');
});
我错过了什么?.htaccess 更改?我需要更改公共路径的另一个地方?