tutorial - redirect codeigniter
¿Dónde coloco los archivos de imagen, css, js, etc. en Codeigniter? (12)
¿Dónde es aceptable poner carpetas css y carpetas de archivos de imágenes? Estaba pensando dentro de la carpeta de vista? Sin embargo, el controlador siempre redirige la ruta a la URL base, por lo que debo especificar la ruta en el archivo .html hasta donde se encuentra, lo cual es redundante.
(Soy nuevo en Codeigniter, así que no sé si este es el mejor consejo)
Guardo archivos públicamente disponibles en mi carpeta pública. Es lógico que estén allí, y no quiero usar Codeigniter para algo para lo que no necesito usarlo.
El árbol de directorios se ve así:
- /solicitud/
- /público/
- / public / css /
- / public / img /
- / public / js /
- /sistema/
Los únicos archivos que guardo en / public / son index.php de Codeigniter y mi archivo .htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]
RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]
Así es como manejo los activos públicos. Aquí uso el método Bootstrap de Phalcon PHP .
Estructura de carpetas
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
Archivos para editar
.htaccess*
Todas las solicitudes al proyecto se reescribirán en el directorio público / convirtiéndolo en la raíz del documento. Este paso garantiza que las carpetas internas del proyecto permanezcan ocultas a la vista pública y, por lo tanto, elimina las amenazas de seguridad de este tipo. - Doc Phalconphp
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] </IfModule>
.htaccess**
Las reglas verificarán si el archivo solicitado existe y, si lo hace, no tiene que ser reescrito por el módulo del servidor web. - Doc Phalconphp
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,L] </IfModule>
index.php***
Modifique la ruta de la
application
y la ruta delsystem
como,$system_path = ''../system''; $application_folder = ''../application'';
Ahora usa la carpeta public
como base_url()."public/[YOUR ASSET FOLDER]"
Espero que esto ayude :)
El ayudante link_tag()
es claramente la manera de hacer esto. Ponga su CSS en donde normalmente pertenece, en raíz_sitio / css / y luego use el ayudante:
De los documentos de CodeIgniter ...
echo link_tag(''css/mystyles.css'');
Salida
<link href="http://example.com/css/mystyles.css" rel="stylesheet" type="text/css" />
Estoy usando la última versión de CodeIgniter 3.1.0. La estructura de la carpeta es:
- sistema
- solicitud
- guía del usuario
- bienes
- imágenes
- js
- css
Ahí es donde debe colocar los archivos de imágenes, css y js dentro de la carpeta de activos.
Hola, nuestra estructura es como Aplicación, sistema, user_guide
crear un nombre de carpeta de activos solo cerca de todas las carpetas y luego dentro de esta carpeta de activos crear css y javascript y la carpeta de imágenes poner todos sus css js en las carpetas
ahora ve a header.php y llama al css así como así.
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/touchTouch.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/style.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/camera.css">
Independientemente de dónde coloque el archivo CSS, simplemente puede usar el programa de ayuda "html" CodeIgniter llamado link_tag (). Usted aplicaría este ayudante algo como esto:
echo link_tag(''folder/subfolder/stylesheet.css'');
Depende de usted ubicar el archivo CSS en el lugar más apropiado (en su opinión). Tendría que cargar automáticamente el helper "html" o cargarlo por separado para usarlo.
La gente sigue sugiriendo el uso de base_url () para lograr esto, pero en realidad no es realmente la forma de "CodeIgniter" para hacerlo (creo que esta pregunta tiene algunos duplicados). Eso funcionará, pero una de las razones para usar un marco es usar las funciones prefabricadas dentro de él.
Hay muchos ayudantes en Codeigniter para hacer este tipo de cosas.
Nadie dice que debe modificar los .htacces y agregar el directorio en la condición de reescritura. Creé un directorio "público" en el directorio raíz junto con "sistema", "aplicación", "index.php". y editó el archivo .htaccess de esta manera:
RewriteCond $1 !^(index/.php|public|robots/.txt)
Ahora solo tiene que llamar a <?php echo base_url()."/public/yourdirectory/yuorfile";?>
Puede agregar el subdirectorio dentro del directorio "public" como lo desee.
No, dentro de la carpeta de vistas no está bien.
Mira: debes tener 3 carpetas básicas en tu proyecto:
sistema // Este es el marco de CI no hay muchas razones para tocar estos archivos
aplicación // aquí es donde va su lógica, los archivos que hace la aplicación ,
público // este debe ser tu documentroot
Por razones de seguridad, es mejor mantener su marco y la aplicación fuera de su documentroot, (public_html, htdocs, public, www ... etc.)
Dentro de su carpeta pública, debe poner su información pública, lo que los navegadores pueden ver, es común encontrar las carpetas: images, js, css; entonces tu estructura será:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
Normalmente pongo todos mis archivos así en una carpeta de "activos" en la raíz de la aplicación, y luego me aseguro de usar un Asset_Helper para señalar esos archivos por mí. Esto es lo que sugiere CodeIgniter.
Tengo una configuración como esta:
- solicitud
- sistema
- bienes
- js
- imgs
- css
Luego tengo una función auxiliar que simplemente devuelve la ruta completa a esto dependiendo de mi configuración, algo similar a:
application / helpers / utility_helper.php:
function asset_url(){
return base_url().''assets/'';
}
Por lo general, mantendré rutinas comunes similares a esta en el mismo archivo y las cargaré automáticamente con la configuración de autocarga de codeigniter.
Nota:
base_url()
URL auxiliar para el accesobase_url()
.
application / config / autoload.php:
$autoload[''helper''] = array(''url'',''utility'');
A continuación, tendrá acceso a asset_url()
todo su código.
Yo uso la siguiente estructura de carpetas:
application
system
static
admin
js
css
images
public
js
css
images
uploads
original
thumbs
agregue una carpeta con cualquier nombre, por ejemplo, pública y agregue el archivo .htaccess y escriba " allow" de todo lo que signifique, en esta carpeta, todos sus archivos y todas las carpetas no darán error . ¡Prohibido el acceso! Úselo así
<link href="<?php echo base_url(); ?>application/public/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<?php echo base_url(); ?>application/public/js/javascript.js"></script>