【发布时间】:2016-07-14 16:18:01
【问题描述】:
我正在开发一个网站,我的文件结构的相关部分是:
- 网站
- 类
- class1
- js
- 类
现在,js 包含使用同一文件夹中其他脚本的脚本。我可以让脚本在 php 页面上正确加载的唯一方法是将整个 js 文件夹复制到相关的子文件夹中,或者将页面移动到站点文件夹中。这些选项都不好。
我知道问题出在文件路径上,那么如何将 js 脚本中的包含项获取到相对于它们的位置的路径,而不是 php 页面的位置?
一个例子:
我在 class1 中有一个名为 class1home.php 的页面。
它调用一个名为 script.js 的 js 脚本。
script.js 包含一个带有 include(script2.js) 的函数,该函数位于 js 文件夹中。
由于路径,包含正在寻找 site/classes/class1/script2.js。
我希望它转到 site/js/script2.js。
因为有多个文件夹和脚本使用 script2.js,所以我不能只将包含中的文件路径更改为相对于该特定页面。
在 script.js 中:
/**
* @function Include
* @description Includes an external scripts to the page
* @param {string} scriptUrl
*/
function include(scriptUrl) {
document.write('<script src="' + scriptUrl + '"></script>');
}
使用它的一个地方(在 script.js 中):
/**
* @module ToTop
* @description Enables ToTop Plugin
*/
(function ($) {
var o = $('html');
if (o.hasClass('desktop')) {
include('js/jquery.ui.totop.min.js');
$(document).ready(function () {
$().UItoTop({
easingType: 'easeOutQuart',
containerClass: 'ui-to-top fa fa-angle-up'
});
});
}
})($);
【问题讨论】:
-
谁明白这个问题?
-
我认为一些示例代码可能会帮助我们理解并帮助某人提供有用的答案
-
我已经用一个例子更新了这个问题
-
你能分享一些代码吗?
include的函数定义(一个糟糕的函数名称选择)以及调用它的位置会有所帮助。 -
您需要查看 Require.js 或 yepnope.js 或类似的东西。您在那里使用的内容将不起作用,因为在您调用其中定义的函数时,该脚本可能尚未下载。
标签: javascript php html