在html页面中,我正在更改配置文件的来源。源已更改但更改的源脚本文件未呈现。
路径更改后,不会加载require配置。
这是尝试过的。
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script id="reqScript" data-main="" src="require.js"></script>
<script>
var configPath = "";
function setConfigPath(path){
configPath = path;
var getScriptID = document.getElementById('reqScript');
getScriptID.setAttribute('data-main',configPath);
}
var hostname = window.location.host.toLowerCase();
if(hostname.indexOf("domain1")!=-1){
setConfigPath("domain1-config");
}
else{
setConfigPath("domain2-config");
}
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:2)
修改data-main
标记的<script>
属性不会使其重新加载脚本。要动态加载脚本,您需要创建一个新元素。
function setConfigPath(configPath){
var getScriptID = document.createElement('script');
getScriptID.setAttribute('data-main',configPath);
getScriptID.src = 'require.js';
document.getElementsByTagName('head')[0].appendChild(getScriptID);
}
答案 1 :(得分:0)
鉴于在加载RequireJS后使用data-main
等同于使用require
,您只需将JavaScript更改为:
var hostname = window.location.host.toLowerCase();
var config_path;
if(hostname.indexOf("domain1")!=-1) {
config_path = "domain1-config";
}
else {
config_path = "domain2-config";
}
require([config_path]);
当你已经知道它应该具有什么价值时, data-main
很方便。否则,扭曲代码以生成data-main
客户端的值是没有好处的。使用它不会使事情加载得更快,也不会神奇地同步。