Как переместить общую папку Laravel 11?

Я пытался найти руководство по перемещению общей папки, но из всего руководства кажется, что код отличается от кода версии 11. Структура папок, которую я хочу переместить, будет такой:

  • public (папка public находится здесь)
  • программа (все остальные файлы будут храниться в этой папке)

Я изменил файл public/index.php следующим образом:

<?php

use Illuminate\Http\Request;

define('LARAVEL_START', microtime(true));

// Determine if the application is in maintenance mode...
if (file_exists($maintenance = __DIR__.'/../program/storage/framework/maintenance.php')) {
    require $maintenance;
}

// Register the Composer autoloader...
require __DIR__.'/../program/vendor/autoload.php';

// Bootstrap Laravel and handle the request...
(require_once __DIR__.'/../program/bootstrap/app.php')
    ->handleRequest(Request::capture());

Однако, когда я пытаюсь запустить php artisan serve, я получаю сообщение об ошибке

   Symfony\Component\Process\Exception\RuntimeException

  The provided cwd "C:\wamp64\www\my-project\program/public" does not exist.

Что нужно изменить, чтобы все заработало?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
475
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы заставить artisan использовать пользовательскую общую папку, вы можете отредактировать скрипт artisan , чтобы вызвать метод usePublicPath() для объекта приложения.

Измените эти строки:

$status = (require_once __DIR__.'/bootstrap/app.php')
    ->handleCommand(new ArgvInput);

к:

$status = (require_once __DIR__.'/bootstrap/app.php')
    ->usePublicPath('/your/public/folder')
    ->handleCommand(new ArgvInput);

Спасибо за ваш ответ. Но внутри приложения при вызове public_path() оно по-прежнему показывает старый общедоступный путь. Как я могу обновить его?

user1995781 10.05.2024 15:09

@user1995781 user1995781 Я думаю, объект приложения создается несколько раз; в этом случае вам следует напрямую изменить bootstrap/app.php. Попробуйте заменить последнюю строку })->create(); на })->create()->usePublicPath('/your/public/folder');.

Olivier 11.05.2024 09:44

Другие вопросы по теме