Php Lightbox通过URL包含图像

Php Lightbox通过URL包含图像,php,javascript,html,Php,Javascript,Html,我有一个使用URL重写的网站,所以我必须直接引用资源,而不是通过相对URL。我通常通过将站点url附加到href的开头来实现这一点 例如: <script src="<?php echo SITE_URL ?>lightbox/js/lightbox.js"></script> 我意识到我可以这么做: this.fileLoadingImage = 'http://www.example.com/images/loading.gif'; 但这与我从上下文

我有一个使用URL重写的网站,所以我必须直接引用资源,而不是通过相对URL。我通常通过将站点url附加到href的开头来实现这一点

例如:

<script src="<?php echo SITE_URL ?>lightbox/js/lightbox.js"></script>
我意识到我可以这么做:

 this.fileLoadingImage = 'http://www.example.com/images/loading.gif';
但这与我从上下文中提取资源的想法不太相符。我想要它,所以如果我在配置文件中修改站点URL,它也会显示在lightbox.js文件中。我不懂Javascript,所以这让我很沮丧

更可接受的是:

 this.fileLoadingImage = site_url + '/images/loading.gif';
其中site_url根据config.php反映当前url。如何获取javascript文件的站点URL常量?

您可以设置一个,将其指向包含index.php的项目文件夹(您的公用文件夹),然后将所有引用更改为绝对引用(即,e
this.fileLoadingImage='/images/loading.gif'

我相信很多框架都是这样做的

过去,如果我需要一个特别的php生成的javascript变量,我会将它直接放在一个新的
标记中,在我的scripts.php文件中:

<script src ="/js/jquery.js"></script>
...
<script>
  var SITE_URL = <?php echo $site_url; ?>;
</script>

...
var SITE_URL=;

虽然我不确定这是否是一个很好的实践。

我会在我页面的ondocumentready中初始化我的lightbox脚本,并将相关选项传递给初始化,例如
initLightbox({baseurl:})(已编辑:使用json_encode()添加引号和转义斜杠)包含var SITE_URL后,它是否会在lightbox.js文件中可用?变量是在全局范围内注册的吗?是的,没错。只要在lightbox之前“包含”了此脚本(即put

<script src ="/js/jquery.js"></script>
...
<script>
  var SITE_URL = <?php echo $site_url; ?>;
</script>