我正在为我的网络应用程序使用bootstrap和jQuery CDN,我只是想知道有没有办法不必去我的文件堆并粘贴CDN链接和脚本而只是把它全部放在一个放置?
假设我无法在本地保存bootstrap或jQuery,或者将Web应用程序设为单页Web应用程序。
我相信Require.js可以做到这一点,但我不确定是否有其他JavaScript库可以做到这一点?
答案 0 :(得分:0)
首先让我说明一点,大多数CDN已经包含了缩小版本......但是有几个选项可以自己完成。 See here for others
我使用过这个,JShrink。
以下是使用CDN列表的示例:
要包含您的脚本..
$scripts = array(
"https://code.jquery.com/jquery-2.1.4.js",
"https://code.jquery.com/ui/1.11.4/jquery-ui.js"
);
foreach($scripts as $script)
echo "<script src='minifier.php?url=".urlencode($script)."'></script>\n";
然后minifier.php
看起来像这样..
<?php
include('vendor/autoload.php');
$minifiedCode = \JShrink\Minifier::minify(file_get_contents($_GET['script']));
header("Content-Type: application/javascript");
echo $minifiedCode;
答案 1 :(得分:0)
您可以在应用的javascript文件中使用以下Javascript在页面标题中插入任何CDN。但是你至少需要在这个脚本的所有页面中链接相同的javascript文件。
function loadjscss(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined"){
document.getElementsByTagName("head")[0].appendChild(fileref)
}
}
loadjscss("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js", "js");
loadjscss("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css", "css");