Estoy empezando con CodeIgniter, y no estoy seguro de a dónde deberían ir cosas como css, js e imágenes. Fuera, toda la carpeta del sistema parece estar bien, pero eso significa que todo está separado. En el interior significa que los filepaths son más largos, y me preocupa que pueda estropear las cosas. ¿Cuál es la mejor práctica en este tema?¿Dónde deben ir los activos en un proyecto de código de encendido?
Respuesta
generalmente pongo carpetas separadas en el nivel raíz, por lo que terminan con una estructura de directorios como esto:
/system
/css
/js
/img
parece funcionar para mí - cuando se utiliza site_url(url)
, la URL que genera es de la root, para que pueda usar site_url('css/file.css')
para generar URL en sus hojas de estilos, etc.
Odio tener tantos directorios en el nivel raíz, entonces uso/public y uso htaccess para reescribir/scripts en/public/scripts, etc. .
¿Podría publicar su mod_rewrite? – bswinnerton
Encuentro que es mejor mantener los activos en el nivel raíz. Puede usar <?=base_url()?>
para hacer eco de la raíz completa del sitio. En el archivo de configuración, configura la raíz del sitio web. Esta afirmación simplemente se hace eco de eso.
Debido a esto, se puede utilizar incluye así:
<link href="<?=base_url()?>/css/style.css" rel="stylesheet" type="text/css" />
cualquier parte del código, y todavía conseguirá http://example.com/css/style.css.
base_url()/css/name.css
base_url() en realidad incluye la barra inclinada final por lo que desea: base_url(). 'css/name.css'; –
ok.ok.thanks. Lo sé pero me olvidé de ponerlo –
Para utilizar el ayudante site_url (url) de esta manera primero debe configurar Apache mod_rewrite (o equivalente) para eliminar el segmento de la URI index.php .
De lo contrario, el método site_url agrega index.php a la URL que probablemente arruinará las rutas de acceso a sus activos si los tiene en el directorio base como se indicó anteriormente.
Aquí está la documentación de CodeIgniter en la eliminación de index.php de la URI:
Personalmente, puedo extraer el directorio application
fuera del directorio system
y hacer que un hermano a system
. Luego creo un directorio de proyecto en public_html (www)
donde muevo index.php y almaceno mis activos públicos.
Supongamos que el proyecto en el que está trabajando se llama projekt
. En el directorio raíz para public_html (www)
crear un directorio llamado CISYSTEM
, y dentro de ese directorio crear un directorio de la versión que está utilizando, 202
, etc. 210
/CISYSTEM
/202
/210
/another_CI_version
/projekt_application
/models
/views
/controllers
/private_assets
/public_html
/projekt
index.php
.htaccess
css
img
js
lib
La belleza de esta estructura de directorios se añade otra capa de seguridad y hace que sea más fácil actualizar/intercambiar su núcleo de CI. Además, no se supone que debas realizar cambios en el núcleo: tener un solo directorio donde se almacena tu núcleo y tener todos los proyectos de referencia lo mantiene seco.
Todo este cambio de directorio requiere que reenrute algunas cosas. Afortunadamente, CodeIgniter lo hace fácil: todos los cambios se pueden realizar en el archivo index.php
.
abierto index.php
y redireccionar un par de cosas:
Cambio: $system_path = 'system';
Para: $system_path = '../../CISYSTEM/210';
Cambio: $application_folder = 'application';
Para: $application_folder = '../../projekt_application';
Además, veo a mucha gente hablando de usar site_url()
en las otras respuestas. Recomiendo una manera menos detallado de la utilización de site_url()
... usted no tiene que llamar cada vez que si se hace uso de elementos de HTML <base>
:
<base href="<?= site_url();?>">
basta con incluir que en su solicitud de <head>
y que pueda llamar a los controladores directamente ... como en:
<a href='controllername/functionname'>Some Action</a>
Saludos
- 1. ¿Dónde deben almacenarse los validadores personalizados de Rails 3?
- 2. ¿Dónde deben ir los archivos temporales creados por el control MS Chart?
- 3. ¿Dónde ir a buscar proyectos de código abierto para trabajar?
- 4. Qué código debe ir Dónde en estructura MVC
- 5. ¿Las etiquetas de encabezado HTML deben ir en orden?
- 6. ¿Dónde puedo anunciar un proyecto de código abierto?
- 7. Sobrecarga del operador en C# - ¿A dónde debe ir el código de código real?
- 8. ¿A dónde deberían ir las sentencias 'CreateMap'?
- 9. ¿Dónde debe ir un archivo de preferencias .xml?
- 10. ¿Dónde en el código se deben mantener los datos que no cambian?
- 11. Evento de clic de encendido del código en gwt
- 12. ¿Qué archivos/carpetas en una solución C# de Visual Studio 2010 deben ir a Mercurial DVCS?
- 13. Obtener código de salida - Ir
- 14. ¿Dónde se especifica si los identificadores Unicode deben permitirse en una implementación de Haskell?
- 15. ¿Dónde colocar una clase simple en un proyecto de MVC?
- 16. ¿Cómo se enumeran los submódulos activos en un proyecto de Maven?
- 17. ¿Dónde comenzar con los contratos de código?
- 18. Qué archivos de proyecto no deben registrarse en SVN
- 19. ¿Cómo financiar un proyecto de código abierto?
- 20. ¿Dónde debo colocar los archivos de configuración de la aplicación para un proyecto Maven?
- 21. ¿A dónde debería ir el código para construir modelos de vista?
- 22. ¿Dónde debería colocar los archivos SQL en mi proyecto Java?
- 23. ¿Dónde almacena Outlook los archivos de código VBA?
- 24. Cómo convencer a un patrocinador del proyecto de que todas las funciones en su código deben tener pruebas unitarias
- 25. Tubería de rieles/activos: enumere dinámicamente los activos incluidos en un manifiesto
- 26. ¿Dónde podría encontrar diagramas UML de un proyecto de código abierto?
- 27. ¿Por qué los eventos de WebControl tienen el prefijo "Encendido"?
- 28. ¿Se deben firmar los ensamblados de interoperabilidad?
- 29. dónde poner archivos .properties en un proyecto de Eclipse?
- 30. ASP.NET MVC: ¿Cómo manejar los datos del modelo que deben ir a cada vista?
Ah, eso tiene sentido. Quería poder usar site_url, así que esto tiene sentido. Gracias! –
¿Eso significa que mantiene la carpeta de su sistema dentro de un directorio público? –
@Blowski Sí. Sé que no es una buena práctica, pero no creo que sea necesariamente un problema, especialmente si usa .htaccess para cerrar el acceso. –