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 AppProvidersAppServiceProvider
register()
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_html
por 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.