Limpie la URL y el problema de orden de carga de JavaScript en PHP
-
27-10-2019 - |
Pregunta
Estoy tratando de crear una página web de PHP.packing.php contiene:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="description" content="Fresh Sliding Thumbnails Gallery with jQuery and PHP" />
<meta name="keywords" content="jquery, images, gallery, full page, thumbnails, scrolling, sliding, php, xml"/>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen"/>
<link rel="stylesheet" type="text/css" href="css/ddsmoothmenu.css" />
<script type="text/javascript" src="js/jquery-1.6.1.js"></script>
<link rel="stylesheet" type="text/css" href="css/site.css" />
<script type="text/javascript" src="js/ddsmoothmenu.js">
</script>
<script type="text/javascript" src="js/jquery.gallery.js"></script>
<script type="text/javascript" >
$(document).ready( function(){
// Menu
ddsmoothmenu.init({
mainmenuid: "smoothmenu1", //menu DIV id
orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
classname: 'ddsmoothmenu', //class added to menu's outer DIV
//customtheme: ["#1c5a80", "#18374a"],
contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
});
});
</script>
y mi .htaccess es
RewriteEngine On
RewriteRule ^packing/Pure packing.php?id=pure
RewriteRule ^packing/ExtraVirgin packing.php?id=EV
Ahora, cuando abro mi php, se rendersproperly digo que abro paquete.php
Pero cuando abro usando la URL limpia, da un error en Firebug que indica que $ no está definido.
Ahora sé que el problema se debe a la orden de carga incorrecta de JavaScripts. ¿Por qué sucede y cómo puedo resolverlo?
Gracias.
Solución
Cuando usa sus URL limpias, el navegador cree que está en un directorio diferente (/packing/pure
). Las URL relativas que apuntan a sus archivos JS ya no funcionarán.
Use URL absoluto en su lugar:
<script type="text/javascript" src="/js/jquery.gallery.js">
Otros consejos
¿Podría haber un problema con los caminos? No estás dando rutas, pero estás cambiando caminos desde la raíz (packing.php
) a un segundo nivel (packing/Pure
). Probablemente esté buscando sus archivos .js en la ruta incorrecta, como packing/js/
en lugar de solo /js
.
Intente usar rutas absolutas para su carga:
<script type="text/javascript" src="/js/jquery-1.6.1.js"></script>
(¡Observe la barra!)
o incluso
<script type="text/javascript" src="http://yoursite.com/js/jquery-1.6.1.js"></script>