我一直在使用网站目录结构开发我的网站
www
img
javascript
include
index.php
现在我想将其更改为
www
index.php
dir1
dir2
...
themes
theme1
img
javascript
include
index.php
在主题级别index.php,早些时候我将javscript文件的路径设为javascript/file1.js
左右。
现在我已将路径更改为<?php echo THEME_PATH . "javascript/file1.js"?>
这包括js文件,但我的问题是当我到达js文件内部时。
例如,在一个script.js文件中,我有一个名为
的jquery方法 $('#pop-con').html('<p><img src="img/ajax-loader.gif" width="220" height="19" /></p>');
我不能在js文件中使用php。那么如何更改类似于上面的php实现的路径?
答案 0 :(得分:2)
相对路径
可能最简单的解决方法之一就是使用相对路径。
在你的情况下,你需要成为一个目录(../),所以它将是:
$('#pop-con').html('<p><img src="../img/ajax-loader.gif" width="220" height="19" /></p>');
答案 1 :(得分:1)
您可以在页面上创建一个小<script>
来创建一个全局变量来存储“THEME_PATH”值:
<script>
window['THEME_PATH'] = '<?php echo THEME_PATH?>';
</script>
然后您的JavaScript文件可以只查找全局变量并使用它来构造路径。我将这些代码保存在一个全局模板标题中,该标题用于我的应用程序中的所有页面。真的只有很少的东西值得担心;在我的应用程序中,我认为有类似4或5项信息可以与包含的.js文件进行通信。
答案 2 :(得分:1)
解决方案,万一其他人需要它。
我将以下代码放在我的主题级index.php文件
中<script>
window.themePath = "<?php echo $site_info[theme_style_path]; ?>";
</script>
使用javascript全局变量追加路径。
答案 3 :(得分:0)
Javascript的来源与HTML嵌入页面的目的无关。重要的是嵌入HTML的页面的位置。
例如,如果从example.com/index.php
加载页面,并且从example.com/js/script.js
加载的某些Javascript将一些HTML插入到主页面中,则图像路径引用将相对于{{1}这是加载页面的地方,而不是/
。
至于在JS中嵌入PHP,你是对的 - 但是你可以让PHP轻松地发出一个.js文件:
/js
会生成完全有效的Javascript,甚至认为它来自PHP文件。