解决方案,对我有用:
根据我的第一个解决方案,我通过 Web API 控制器提供一个index.html
和一个文件。bootstrapper.js
该index.html
文件将从 blob 存储加载,在服务器上格式化(获取存储帐户端点 url:https ://xxx.blob.core.windows.net/ )并通过HttpResponse
(mediatype:text/html)返回。将bootstrapper.js
通过HttpResponse
(媒体类型:应用程序/javascript)加载和返回。
该文件现在使用剩余静态内容的正确源 URLindex.html
调用该文件。bootstrapper.js
其余内容将从给定的源 URL 相对加载。
在我们的生产系统中,源 URL 指向 blob 存储,在开发环境中,URL 指向本地 Web 服务器。这是必需的,因为Web 服务器提供的 HTML 文件无法访问文件系统上的文件。因此需要一个 Web 服务器(我们使用 WebStorm 中的内置 Web 服务器)来提供这些文件。
index.html
文件:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Main Page</title>
<script type="text/javascript" src="bootstrap-app.js"></script>
<script type="text/javascript">bootstrapApp('{0}');</script>
</head>
<body></body>
</html>
bootstrapper.js
文件:
/**
* Loads all needed files asynchronously into the html file
*/
window.bootstrapApp = function(baseUrl) {
"use strict";
var i, assetUrls;
window.baseUrl = baseUrl;
assetUrls = [ 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/2.36.0/codemirror.min.css',
'https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.0.6/jquery.mousewheel.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/codemirror/2.36.0/codemirror.min.js',
baseUrl + '../lib/xxx.js',
baseUrl + '../lib/xxx/xxx.js',
baseUrl + 'resources/xxx.css',
baseUrl + 'xxx.js'
];
function endsWidth(string, suffix) {
return (string.indexOf(suffix, string.length - suffix.length) !== -1);
}
// Load all assets from the previously defined array asynchronously in the order they are given in the array
for (i = 0; i < assetUrls.length; i++) {
// Load css or js asset
if (endsWidth(assetUrls[i], 'css')) {
document.write('<link rel="stylesheet" type="text/css" href="' + assetUrls[i] + '" />');
} else if (endsWidth(assetUrls[i], 'js')) {
document.write('<script type="text/javascript" src="' + assetUrls[i] + '"></script>');
}
}
};