Saltar al contenido

Cómo cambiar la carpeta pública a public_html en laravel 5

Luego de consultar especialistas en la materia, programadores de varias áreas y profesores hemos dado con la respuesta a la interrogande y la compartimos en esta publicación.

Solución:

Bastante fácil de encontrar esto con una simple búsqueda.

Ver: https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-laravel-5

En su index.php agregue las siguientes 3 líneas.

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/

$app = require_once __DIR__.'/../bootstrap/app.php';

// set the public path to this directory
$app->bind('path.public', function() 
    return __DIR__;
);

Editar:


Como mencionó Burak Erdem, otra opción (y más preferible) es poner esto en el AppProvidersAppServiceProviderregister() método.

/**
 * Register any application services.
 *
 * @return void
 */
public function register()

    // ...

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

si es de roberto index.php solución no funciona para usted, también puede registrar el siguiente código en Application Service Provider (AppProvidersAppServiceProvider.php).

app->bind('path.public', function() 
        return base_path().'/public_http';
    );

Servidor

Los métodos descritos en el tema funcionan bien, por lo que modificar el método de registro AppProvidersAppServiceProvider.php debería hacer el trabajo:

app->bind('path.public', function() 
        return base_path() . '/public_http';
    );

Desarrollo local de servicios php artesanales

Sin embargo, hay un problema más que puede experimentar. Si está desarrollando su aplicación en una máquina local y está usando php artisan serve comando para servir su aplicación, la romperá solo con la sintaxis anterior. Todavía necesita ajustar el archivo server.php que existe en el directorio principal. Edite el contenido del mismo y reemplace cada aparición de /public a /public_htmlpor lo que se ve así:

[email protected]>
 */

$uri = urldecode(
    parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);

// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public_html'.$uri)) 
    return false;


require_once __DIR__.'/public_html/index.php';

Después. Simplemente detenga su servidor y recárguelo con php artisan serve.

Desarrollo front end laravel-mix

Si está utilizando webpack y laravel-mix para generar sus archivos css y js, esto también necesita alguna actualización. Sin ajustar webpack.mix.js, terminará con algo como esto en npm run watch o npm run production:

.
..
public
  _html
    js
  public_html
    css
public_html

Así que va a estropear tu código. Para aclarar esto, debe proporcionar una ruta pública a su archivo webpack.mix.js. Podría verse así:

const mix = require('laravel-mix');

mix.setPublicPath('public_html/');
mix.js('resources/js/app.js', 'js')
mix.sass('resources/sass/app.scss', 'css');

Esto va a cambiar la definición predeterminada de directorio público de public a public_html y las siguientes líneas proporcionan una ruta relativa a su valor setPublicPath.

Codificación feliz.

Aquí tienes las comentarios y valoraciones

Tienes la posibilidad dar visibilidad a esta reseña si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *