【发布时间】:2014-10-01 21:19:22
【问题描述】:
好的,所以我有一些与 URL 重写一起运行的 Javascript;因此,如果我使用相对 URL,它会从错误的位置加载内容。
例如我在 myfunctions.js 中有这个函数:
function loadXMLDoc(url,cfunc) {...
如果我从test.com/a/b/c 传入一个相对网址,它将加载相对于test.com/a/b/c 而不是test.com 的内容。
我显然可以使用绝对 URL 来解决这个问题,但我需要它同时在测试服务器和实时服务器上工作。
当前在 PHP 中我使用一个函数来获取基本 url 并将其替换为绝对 URL。
所以在 PHP 中我有:
//On the test server I run:
define('BASE_URL', 'http://localhost/location/to/www/root');
//And on the live server I run:
define('BASE_URL', 'http://www.test.com/');
然后我在我的 PHP 中使用它来绝对加载图像、css 等;这允许我在测试服务器和实时服务器上使用相同的代码。
我的问题是;这里的正确解决方案是什么?我是否应该使用类似于我的 PHP 的 Javascript 函数来形成绝对 URL?或者将这个 PHP 定义传递给 .js 文件是否可能/一个好主意?
甚至可能有一个重写标志,告诉浏览器忽略 url 中的相对位置,只从根 www 位置加载;但我在上面找不到任何东西。
有什么想法吗?
【问题讨论】:
-
抓取当前url,修剪,添加a/b/c
-
@starvator: 把它修剪成什么?如果网站位于虚拟目录中,则根目录可能是
http://www.domain.com/approot/:) -
也许你需要使用一个变量 $isLive = false;然后用 if($isLive) { define('base_url', 'url-live'); 检查它} else { 定义('base_url', 'url-test'); }
-
@TrueBlueAussie 真的吗?我在虚拟目录中有一个站点,当我抓取 url 时,它包含了 aspx 页面。奇怪
-
@starvator:我的意思是你会从网站根不在
/的网址中修剪什么,例如http://www.domain.com/approot/somepage.aspx?
标签: javascript php jquery html url-rewriting