tutorial español ejemplos php codeigniter

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.