php - español - codeigniter tutorial 2018
Buenas prácticas de la carpeta de activos de Codeigniter (4)
Tengo esta configuración:
application
assets
system
.htaccess
y en la carpeta "assets" tengo subcarpetas como "img" o "js", y así sucesivamente. También uso "utilidad auxiliar" para ayudarme a señalar esa carpeta.
Si quieres probarlo, primero debes crear un helper llamado "utility_helper.php" con este código:
<?php if ( ! defined(''BASEPATH'')) exit(''No direct script access allowed'');
if ( ! function_exists(''asset_url()''))
{
function asset_url()
{
return base_url().''assets/'';
}
}
y almacenarlo en
application/helpers/
entonces tienes que autocargar a ese ayudante, vas a:
application/config/autoload.php
y cargar automáticamente el asistente (ejemplo:)
$autoload[''helper''] = array(''form'', ''url'', ''utility'');
también debe enrutar a esa carpeta (''application / config / routes.php'')
$route[''assets/(:any)''] = ''assets/$1'';
y tener un archivo .htaccess con este contenido:
RewriteEngine on
RewriteCond $1 !^(index/.php|images|assets|robots/.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
ahora puede simplemente incluir scripts externos, ejemplo css:
<link rel="stylesheet" type="text/css" href="<?php echo asset_url();?>css/style.css">
donde css es la carpeta dentro de assets y style.css es el archivo css. Al igual que:
application
assets
css
style.css
system
Soy bastante nuevo para Codeigniter, pero estoy aprendiendo bien, voy a agregar una carpeta css, images, js, ... pero no estoy seguro de dónde ponerlo
Alguien me dijo que creara una carpeta ''pública''
system
application
public
css
images
Y luego en su index.php (en la carpeta pública) ajustar en consecuencia
$ system_path = ''../system''; $ application_path = ''../application'';
Pero cuando lo hago obtengo un 404 (no el ci 404, sino uno realmente no encontrado)
¿Alguien tiene alguna idea de lo que podría estar haciendo mal? ¡Gracias!
Volvería atrás los cambios que hizo en su index.php
, ya que me parece que ellos son la fuente del problema.
He estado usando una configuración similar para CodeIgniter, donde todas mis imágenes, CSS y JS van en una carpeta llamada static
, y literalmente todo lo que hice fue crear esa carpeta y poner los archivos en ella, y funcionaron bien. Si desea eliminar index.php
de su URL, deberá asegurarse de que su archivo .htaccess
no vuelva a escribir las URL para sus archivos estáticos.
otro punto de vista sobre esto, y creo que lo que intentaban decirte que hicieras, es colocar tus carpetas de aplicaciones y sistema un nivel arriba de la carpeta html "pública". de esa forma tus archivos fuente no son accesibles. así que, como en Mamp, la carpeta pública se llama htdocs, en la mayoría de los servidores web se llama html.
/application/html/
/system /html/
// your main index page is in the public html folder
/.….. /html/index.php
// an assets folder in the public html folder with css, img, etc folders
/.…… /html/assets/css/
/.…… /html/assets/img/
luego en su index.php, la ruta va un nivel ''arriba'' como
$system_path = ''../system'';
$application_folder = ''../application'';
BONUS - aquí hay dos consejos que me han ayudado mucho. 1) Nombre su carpeta de aplicaciones, luego puede cambiar fácilmente entre diferentes versiones, ''retroceder'' muy rápidamente, etc.
/app_alpha/html/
/app_beta01/html/
/app_beta02/html/
2) Coloque la url base en la página index.php - no en la configuración.
$assign_to_config[''base_url''] = ''https://awesomedomain.com'';
de esa manera puede tener una versión de desarrollo local, una versión de servidor en vivo por separado, y nunca tendrá que preocuparse por escribir la url base porque está en la página index.php, no en la configuración.
busca ayuda de activos simples para cargar cualquier cosa a tu aplicación ...