Php 公共路径在生产中不起作用,但它';他在当地工作
Php 公共路径在生产中不起作用,但它';他在当地工作,php,laravel,Php,Laravel,public\u path()在生产环境中对我不起作用,但在本地环境中它起作用 在localhostpublic\u path()中,函数工作正常。但是,当文件移动到服务器时,在illumb\Foundation\Application.php中会出现错误,您会发现: /** * Get the path to the public / web directory. * * @return string */ public function pu
public\u path()
在生产环境中对我不起作用,但在本地环境中它起作用
在localhost
public\u path()
中,函数工作正常。但是,当文件移动到服务器时,在illumb\Foundation\Application.php中会出现错误,您会发现:
/**
* Get the path to the public / web directory.
*
* @return string
*/
public function publicPath()
{
return $this->basePath.DIRECTORY_SEPARATOR.'public';
}
}
basePath返回Laravel安装的基本路径
有时,此路径不能满足您的需要,因此您必须覆盖它。。。
请记住,您不能更改此类代码,因为它超出了您的项目代码。。。
根据您的laravel版本,您有一些选择:
1-调整bootstrap/path.php中的路径值
'public' => __DIR__.'/../public'
见:
2-您可以使用ioc容器覆盖公共路径:
App::bind('path.public', function() {
return base_path().'/public_html';
});
在本次讨论中有一些很好的建议,其中包含非常好的想法您必须在
index.php
中更改公用文件夹路径有时此文件夹称为
public\u html
。典型的用户public html
路径示例是/home/user/public\u html
因此,要在自定义公用文件夹中运行应用程序,您需要更改以下4个最重要的文件:
/server.php
此文件位于根文件夹中。当您调用命令PHP artisan serve时,本地PHP开发服务器使用。它具有公用文件夹的硬编码值。将此值更改为自定义路径(例如:
public\u html
)
/app/AppServiceProvider.php
在此文件中,您可以注册并启动应用程序的一些服务提供商。有一个名为register()
的函数。通常,此部分默认为空。您需要添加额外的代码来定义自定义应用程序路径
public function register()
{
$this->app->bind('path.public', function() {
return base_path().'/public_html';
});
}
/config/filesystems.php该文件定义了一些重要的文件系统位置、云文件系统的使用以及其他与文件相关的配置。修改
public
部分以将root
值app/public
更改为所需位置,例如,app/public\u html
(app
是根文件夹的别名)
/webpack.mix.js
或者,一些Laravel安装使用Laravel Mix插件模块,使用Webpack npm插件生成javascript、css和其他前端文件的统一和小型版本。这些文件安装在公用文件夹中(例如,/public/js
和/public/css/
)。添加一行更改默认公共路径(mix.config.publicPath
),并在Laravel mix配置中将公用文件夹更改为所需的public文件夹名称
mix.config.publicPath='public_html';
mix.js('resources/assets/js/app.js', 'public_html/js')
.sass('resources/assets/sass/app.scss', 'public_html/css');
移动公用文件夹将公用文件夹移动到另一个文件夹的最简单方法是使用move(
mv
)命令。之后,您的公用文件夹现在将被重命名
mv public public_html
显示您的代码,我们可以提供帮助
mix.config.publicPath='public_html';
mix.js('resources/assets/js/app.js', 'public_html/js')
.sass('resources/assets/sass/app.scss', 'public_html/css');
mv public public_html