为Javascript重写根目录路径"/"

Sta*_*arx 5 javascript directory

我们可以使用修改PHP的文档根目录路径

$_SERVER['DOCUMENT_ROOT'] = "to/some/new/directory";
//Now the "/" which represent the ^(above) path
Run Code Online (Sandbox Code Playgroud)

在.htaccess我们有

RewriteBase "/to/some/new/directory"
Run Code Online (Sandbox Code Playgroud)

现在,我需要修改在javascript中使用的根目录路径.怎么做?

目前,我正在声明一个变量,其中包含我的个性化根目录的静态路径并将其用作

var root = "../to/new/path";
document.location = root+"/somepage.php";
Run Code Online (Sandbox Code Playgroud)

脚本

我想我应该对这个场景说一点,让你们抓住我的想法

默认Web根目录

http_docs/
Run Code Online (Sandbox Code Playgroud)

里面包含一个主文件夹

http_docs/application <-- contains the actual application
http_docs/js <-- contains the script
http_docs/index.html
Run Code Online (Sandbox Code Playgroud)

现在,该应用程序还包含用于更新,编辑,加载新内​​容或其他资源的ajax功能,如果在"/"处访问将表示在/ some/path/i /被叫/ not/application/some/path/i /被调用,

为了解决这个问题,我可以定义一个静态变量

var root = "application/";
Run Code Online (Sandbox Code Playgroud)

并在某处使用它

$.post(....., function(data) { $(body).append("<img src='"+root+"resources/img1.jpg"); });
Run Code Online (Sandbox Code Playgroud)

但是对于一次性使用,将路径定义为静态可能不是什么大问题,但是,当应用程序增长时,某些修改会导致我改变我在js部分中给出的所有路径.我想,这是明智的,就像我在PHP中使用它一样<img src="/resources/img1.jpg" />

我尽力解释这个问题,如果仍然不可理解,请社区,让他们帮助他们理解.我欢迎你编辑我的问题.

Ste*_*aug 5

编辑:尝试回答更新的问题 假设从index.html文件中调用JavaScript,如果插入img标记并使用相对URL,它们将相对于索引文件的路径.所以<img src='application/resources/img1.jpg'>工作得很好.如果脚本应该适用于几个子级别(例如,如果页面"application/etc/etc2/somePage.html"需要来自"application/resources /"的图像),则可能更容易使用绝对URL,并且您可以包含一个javascript块在php生成的每个页面上,它保存应用程序"root"的绝对URL,如:

<!-- included by php in all html pages, e.g. in defautlHeadter.php -->
<script type="text/javascript">
   var rootUrl = "<?= getTheRootUrl() ?>";
</script>
Run Code Online (Sandbox Code Playgroud)

getTheRootUrl()方法或服务器变量在哪里提供您需要的根URL.如果url被翻译/重新映射(通过apache等在php可见的范围之外),你可能需要在php方法中对根URL进行硬编码,但至少如果你改变了根目录,它只会改变一个文件.

然后,您可以使用根URL在应用程序/网站rootUrl + "/some/relative/path"中的任何位置指定应用程序中任何位置的绝对路径.