问题描述
|
我正在尝试建立一个PHP webpage.packing.PHP包含:
<!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>
而我的.htaccess是
RewriteEngine On
RewriteRule ^packing/Pure packing.PHP?id=pure
RewriteRule ^packing/Extravirgin packing.PHP?id=EV
现在,当我打开PHP时,它会正确地表示我打开了packing.PHP。
但是,当我使用干净的URL打开时,萤火虫给出了一个错误,指出未定义$。
现在我知道问题是由于javascript的加载顺序错误所致。
为什么会发生?我该如何解决?
谢谢。
解决方法
当您使用干净的URL时,浏览器会认为它位于其他目录中(
/packing/pure
)。指向您的JS文件的相对URL将不再起作用。
改用绝对URL:
<script type=\"text/javascript\" src=\"/js/jquery.gallery.js\">
, 路径可能有问题?您不是在提供路径,而是在将路径从根目录(packing.php
)更改为第二级(packing/Pure
)。它可能在错误的路径中查找.js文件,例如packing/js/
而不是/js
。
尝试使用绝对路径进行加载:
<script type=\"text/javascript\" src=\"/js/jquery-1.6.1.js\"></script>
(注意斜线!)
甚至
<script type=\"text/javascript\" src=\"http://yoursite.com/js/jquery-1.6.1.js\"></script>