如何解决 Laravel 9 中将 public 更改为 public_html 的问题

2023-12-12

我正在尝试将公共文件夹更改为 Cpanel 上的 public_html 文件夹,并且它在我的计算机上的本地模式下工作正常。

我尝试了这些步骤。

  1. ./app/AppServiceProvider.php 添加此代码

    public function register(){ $this->app->bind('path.public', function() {
    return base_path().'/public_html'; });}
    
  2. ./config/filesystems.php 将 public 更改为 public_html

     'public' => ['driver' => 'local','root' =>
      storage_path('app/public'),'url' =>
      env('APP_URL').'/storage','visibility' => 'public',],
    
  3. ./webpack.mix.js 将 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');
    
  4. index.php 添加此代码

    $app->bind('path.public', function() { return __DIR__; });
    
  5. ./bootstrap/app.php 添加此代码

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

运行后 -> npm run dev

它会自动创建一个 public 文件夹并创建一个 public_html 文件夹,其中包含 mix-manifest.json 文件,并且网站上出现此错误。

Creates a public folder automatically picture

内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员[电子邮件受保护]通知他们此错误发生的时间以及您在出现此错误之前执行的操作。

有关此错误的更多信息可在服务器错误日志中找到。

此外,尝试使用 ErrorDocument 处理请求时遇到 500 Internal Server Error 错误。


我在这里包含了两种不同的选项,一种用于仅更改公共目录名称,另一种用于将核心文件放入其自己的目录中:

第一个选项:对于 laravel 9,只需重命名 public/ 目录:

  1. 将公用文件夹重命名为public_html(或任何想要的名称)
  2. Edit AppServiceProviver.php并在注册方法中添加以下代码:
$this->app->bind('path.public', function() {
  return realpath(base_path().'/public_html');
});
  1. Add publicDirectory: 'public_html' to laravel_core/vite.config.js在plugins / laravel对象中,例如。
export default defineConfig({
    plugins: [
        laravel({
            publicDirectory: 'public_html', // This is the only new line
            input: [
                'resources/sass/app.scss',
                'resources/js/app.js',
            ],
            refresh: true,
        }),
    ],
});

第二个选项:将 laravel 核心文件分离到它们自己的目录中,并重命名 public/ 目录,对于 laravel 9:

  1. 将公用文件夹重命名为public_html(或任何想要的名称)
  2. 创建一个laravel_core目录并移动除public_html进入 laravel_core 文件夹。
  3. Edit index.php in public_html文件夹并查找/替换__DIR__.'/../ with __DIR__.'/../laravel_core/(3例)
  4. Edit AppServiceProviver.php并在注册方法中添加以下代码:
$this->app->bind('path.public', function() {
  return realpath(base_path().'/../public_html');
});
  1. Add publicDirectory: 'public_html' to laravel_core/vite.config.js在plugins / laravel对象中,例如。
export default defineConfig({
    plugins: [
        laravel({
            publicDirectory: '../public_html',
            input: [
                'resources/sass/app.scss',
                'resources/js/app.js',
            ],
            refresh: true,
        }),
    ],
});

Laravel 10 的重要说明

在 Laravel 10 中,您还需要将此行添加到bootstrap/app.php, 之后$app对象在第 14 行实例化:

$app = new Illuminate\Foundation\Application(
    $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);

// Add this below:
$app->usePublicPath($app->basePath('../public_html'));

请注意,我已经使用了../public_html在这里,因为我有laravel_core文件分隔到自己的目录中,如上面的第二个选项所示,但如果您只是更改public目录名称,然后使用它:

$app->usePublicPath($app->basePath('public_html'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决 Laravel 9 中将 public 更改为 public_html 的问题 的相关文章

  • Smarty 3 或更早版本中有类似 Dwoo-s {with} 或 {loop} 的东西吗?

    Dwoo 模板引擎中的 with 和 loop 插件更改变量名称解析的默认上下文 如果在 Dwoo 中您提供模板 arr foo with arr foo arr foo with 有数据 array arr gt array foo gt
  • 如何防止 CakePHP 中重复表单提交?

    我发现 CakePHP 中的安全组件通过将令牌作为隐藏值添加到表单中来帮助防止 CSRF 我想知道是否有办法防止使用此组件或其他组件 帮助器重复表单提交 在之前的项目中 我使用了保存在会话中的唯一哈希值 该哈希值会在提交时读取并删除 重复提
  • 使用 PDO 准备语句使用搜索字段中的多个关键字进行 LIKE 查询

    网站用户使用搜索表单来查询产品数据库 输入的关键字在数据库中搜索产品的标题 public function startSearch keywords keywords preg split s keywords totalKeywords
  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • Laravel 5.4^ - 如何自定义通知电子邮件布局?

    我正在尝试自定义通过电子邮件发送通知时使用的 HTML 电子邮件布局 我已经发布了邮件和通知视图 php artisan vendor publish tag laravel mail php artisan vendor publish
  • Facebook Graph API v3.1 开发人员访问令牌权限限制

    如您所知 Facebook 将其 API 升级到了 V3 1 现在正在慢慢地淘汰旧的 API 和应用程序 因此我们必须迁移到新的 API 他们做出了一些艰难的决定 这对垃圾邮件网站来说是好事 但对开发人员来说也很难 提醒 Graph API
  • PHP 的 PDO 可以限制为单个查询吗?

    PHP 的 PDO 允许通过 query 方法或作为准备好的语句同时执行多个查询 以下两个示例均有效 Two SQL queries query SELECT FROM table DROP table Execute via query
  • 通过 AJAX 发送 XML

    我在 jQuery 中创建了一个 xml 文档 如下所示 var xmlDocument
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • PHP mkdir() 和 fopen() 不起作用 - 权限问题? umask问题?

    以下 PHP 脚本无法创建目录 它也将无法创建文件 当目录已经存在时 ini set error reporting E ALL define ABSPATH SERVER DOCUMENT ROOT echo ABSPATH br br
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 在 Apache 服务器上将特定的 .htm 页面处理为 .php [重复]

    这个问题在这里已经有答案了 我正在为 Apache 服务器编程 并且只需要将一个特定的 html 页面 例如 first htm 作为 PHP 脚本进行处理 可以设置吗 SetHandler http httpd apache org do
  • 如何将 yii2 Restful api 中两个表的关系数据显示为 json 格式

    我遇到了将两个表中的数据显示为 JSON 格式并在 yii2 Restful api 上工作的问题 这是我的结构数据库 TABLE volunteer volunteer id int 11 NOT NULL auto increment
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • PHP 时间间隔

    我正在寻找一个看起来应该非常简单的解决方案 但似乎我不能在这里找到任何好的答案 而且我自己似乎无法让它发挥作用 我正在寻找的是设置开始时间 结束时间 然后迭代给定时间间隔之间的一组时间 例如 上午 9 00 下午 5 00 是开始时间 这些
  • 通过ajax执行后期操作时如何克服CORS重定向问题?

    我可以通过外部登录表单中的 post 方法类型提交表单来登录 roundcube 实例 托管在另一台服务器上 我收到此错误 通过 ajax 签名时 XMLHttpRequest 无法加载https 192 168 0 7 mail http
  • Laravel 经过身份验证的动态子域路由

    我正在尝试让经过身份验证的子域路由适用于某些特定的变量子域 app example com staging app example com testing app example com 这些应该由 auth 中间件来保护 它们本质上都参考

随机推荐