javascript / php的路径问题

时间:2011-03-01 15:06:55

标签: php javascript

我一直在使用网站目录结构开发我的网站

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实现的路径?

4 个答案:

答案 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文件。