更改公用文件夹名称后使用artisan服务

时间:2015-05-20 13:20:18

标签: php laravel laravel-5 artisan

与许多主机一样,我们的公用文件夹名为Dim a As String a = Format(DTPicker1.Value, "dd/MM/yy") 。这是在共享主机上,所以无法更改。我已将public_html文件夹更改为public以反映此情况,但当我public_html停止工作时。每当我尝试启动它时,我得到:

artisan serve

如果我将文件夹重命名为public,则[ErrorException] chdir(): No such file or directory (errno 2) 会重新开始工作。

我已经尝试了following this post on laracasts,并且帖子中的用户报告工匠为他们工作,但这对我没有任何影响。如何更改文件夹并使artisan serve有效?

2 个答案:

答案 0 :(得分:4)

Dipesh的回答实际上是一个非常糟糕的主意 - 每当你进行Composer安装/更新/要求时,这些更改都会被吹走。 永远不要直接编辑vendor目录中的任何内容。

相反,在bootstrap/app.php中,您应该添加:

$app->bind('path.public', function() {
    return __DIR__;
});

之后

$app = new Illuminate\Foundation\Application(
    realpath(__DIR__ . '/../')
);

有关进一步的讨论以及以安全的方式执行此操作的其他方法,请参阅https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-laravel-5

你也可以extend Illuminate\Foundation\Application。对于Laravel CLI(以php artisan开头的任何内容)来说,这似乎是必要的。

答案 1 :(得分:-1)

找到/vendor/laravel/framework/src/Illuminate/Foundation/Application.php此文件
并改变以下功能

/**
 * Get the path to the public / web directory.
 *
 * @return string
 */
public function publicPath()
{
    return $this->basePath.DIRECTORY_SEPARATOR.'public_html';
}