如何解决如何将 Cordova 平台\浏览器\www 内容部署到 Azure 应用服务?
我在 Cordova 中创建了一个应用程序,我只想在浏览器而不是 Android 或 iOS 中运行它。通过在我的 VS Code 编辑器中运行命令“cordova serve”,我的应用程序在本地机器上完美运行。我正在尝试通过以下步骤在 Azure 上发布它:
我的 initController.js
var initControllerDependencies = [];
var device = Framework7.prototype.device;
var deviceOS = device.os;
var nativeDep = 'js/util/mockNative';
// check device and plug appropriate native js
if (deviceOS) {
if (deviceOS.indexOf('ios') !== -1 || deviceOS.indexOf('android') !== -1) {
nativeDep = 'js/util/nativeFacade';
}
}
initControllerDependencies.push(nativeDep);
initControllerDependencies.push("js/util/restUrl");
initControllerDependencies.push("ev");
initControllerDependencies.push("js/util/util");
initControllerDependencies.push("js/util/labelManager");
initControllerDependencies.push("hbs!js/init/header-info");
initControllerDependencies.push("hbs!js/init/user-items");
/**
* This controller is called only once on init.
*/
define(initControllerDependencies,function(Native,RestClient,ev,Util,LabelManager,pageHeaderTemplate,userItems) {
/**
* Runs on the start of the application. 1. Get Language 2. Get labels
*/
function init() {
f7.showPreloader();
//getLanguage();
Native.getDeviceLocale();
}
// Holds all the elements that needs to be binded while rendering the view
var bindings = [ {
element : '#logOut',event : 'click.ev',handler : logOut
},{
element : '#ev-lnkEditProfile',handler : function(){
f7.closeModal('.popover-links');
}
}
];
function logOut() {
f7.closeModal('.popover-links');
$("#pageHeader").css("display","none");
f7.showPreloader(LabelManager.getApplicationData("lbl_Logout"));
var getLogOutXhr = RestClient.makeLogOutXhr();
getLogOutXhr.done(function() {
Util.clearStoredUserCredentials();
f7.mainView.router.loadPage(userLoginPageUrl);
f7.hidePreloader();
}).fail(function() {
f7.hidePreloader();
});
}
function bindEvents(bindings) {
for ( var i in bindings) {
$(bindings[i].element).on(bindings[i].event,bindings[i].handler);
}
};
function setAppInitData(){
f7.params.modalTitle = LabelManager.getPageTitleByModuleName("lbl_app_title");
f7.params.modalButtonOk = LabelManager.getApplicationData('lbl_app_ok');
f7.params.modalButtonCancel = everestCache['commonHtml']['lbl_cancel'];
f7.params.modalPreloaderTitle = LabelManager.getApplicationData('lbl_loading');
f7.params.smartSelectPopupCloseText = LabelManager.getApplicationData('lbl_close');
f7.params.notificationTitle = LabelManager.getApplicationData('lbl_validation_msg');
}
/*
* Gets the list of supported languages and maps it based on the device language.
* Defaults to English,language Id 1
*/
function getLanguage(phoneLocale) {
var langXhr = RestClient.makeLanguagesRsXhr();
langXhr.done(function(data) {
// default locale as of device
var deviceLanguage = 'en';
// get device locale
var fetchedDeviceLocale = phoneLocale;
// fetchedDeviceLocale en-IN
if (fetchedDeviceLocale) {
deviceLanguage = fetchedDeviceLocale.substring(0,2);
}
// to find if available in the list of available languages
$.each(data,function(index,language) {
var langDesc = language['languageValue']; // eg:en
if (langDesc === deviceLanguage) {
// load into app scope for usage across
appScopeData['displayLangId'] = language['languageId'];
appScopeData['localeForMapLoad'] = langDesc;
}
});
});
langXhr.always(function() {
// defaults
if (!appScopeData['displayLangId']) {
appScopeData['displayLangId'] = 1;
}
if (!appScopeData['localeForMapLoad']) {
appScopeData['localeForMapLoad'] = 'en';
}
// call next operation. To fetch Header and Framework 7 defaults
getStaticLabels();
initializeHeader();
});
}
function afterPhoneLocaleFetched(phoneLocale){
getLanguage(phoneLocale);
}
/*
* Fetch Labels for page Title.
*/
function getStaticLabels() {
var commonHtmlXhr = RestClient.makeLabelsRsXhr('commonHtml');
var pageTitleXhr = RestClient.makeLabelsRsXhr('pageTitle');
var commonXhr = RestClient.makeLabelsRsXhr('common');
commonHtmlXhr.done(function(data) {
everestCache['commonHtml'] = data;
$('.logo-message-inset').html(data['lbl_Filtration']);
$('#footer_setup_mon .tabbar-label').html(data['lnk_monitorFooter']);
$('#footer_tips .tabbar-label').html(data['footer_tips']);
$('#footer_sites .tabbar-label').html(data['footer_sites']);
$('#footer_user_profile .tabbar-label').html(data['footer_profile']);
toolBarBinding();
});
pageTitleXhr.done(function(data) {
everestCache['pageTitle'] = data;
});
commonXhr.done(function(data) {
everestCache['common'] = data;
});
var initPromise = [ commonHtmlXhr,pageTitleXhr,commonXhr ];
$.when(commonHtmlXhr,commonXhr).done(function(data) {
setAppInitData();
if (localStorage['isUserAuthenticated'] === 'true') {
var checkForStoresXhr = RestClient.makeStoreCheckXhr();
checkForStoresXhr.done(function(data) {
if (checkForStoresXhr.status !== 204) {
loggedInUser['hasStore'] = false;
if (!loggedInUser['address']) {
var getUserAddressXhr = RestClient.makeGetAddressXhr();
getUserAddressXhr.done(function(data) {
loggedInUser['address'] = data["userAddressAstext"];
ev.router.loadModule(selectMonitorTypePage);
}).fail(function() {
Util.authorisedXhrFailed(getUserAddressXhr);
});
} else {
ev.router.loadModule(selectMonitorTypePage);
}
f7.hidePreloader();
} else {
loggedInUser['hasStore'] = true;
loggedInUser['mapViewInitStores'] = data;
$("#pageHeader").css("display","block");
ev.router.loadModule(mapViewPageUrl);
}
}).fail(function() {
/*f7.hidePreloader();
if (checkForStoresXhr.status === 403 || checkForStoresXhr.status === 401){
Util.loadLoginPage(ev);
}else{ //TODO load error page
Util.loadLoginPage(ev);
//f7.alert(LabelManager.getApplicationData('lbl_FailedMessage'));
}
*/
Util.clearStoredUserCredentials();
Util.loadLoginPage(ev);
});
} else {
ev.router.loadModule(userLoginPageUrl);
}
}).fail(function(jqXHR) {
$.each(initPromise,xhr) {
if (xhr != jqXHR) {
xhr.abort();
}
});
var isErrorPageLoaded = mainView.router.loadPage({
url : errorPageUrl
//animatePages : false
});
if(isErrorPageLoaded === false){
var reloadErrorPageTimeout;
if(reloadErrorPageTimeout){
clearTimeout(reloadErrorPageTimeout);
}
reloadErrorPageTimeout = setTimeout(function(){
f7.mainView.router.loadPage({
url : errorPageUrl
});
},1000)
}
});
}
//Initialize Header
var initializeHeader = function initializeHeader() {
var commonXhr = RestClient.makeLabelsRsXhr('common');
commonXhr.done(function(data) {
everestCache['common'] = data;
everestCache['common']['lbl_Filtration'] = everestCache['commonHtml']['lbl_Filtration'];
everestCache['common']['lnk_homeHeader'] = everestCache['commonHtml']['lnk_homeHeader'];
everestCache['common']['lnk_contact'] = everestCache['commonHtml']['lnk_contact'];
everestCache['common']['lnk_editProfile'] = everestCache['commonHtml']['lnk_editProfile'];
everestCache['common']['lnk_logout'] = everestCache['commonHtml']['lnk_logout'];
$("#pageHeader").prepend(pageHeaderTemplate(everestCache['common']));
if ($('#userActions').length <= 0) {
$(userItems(everestCache['common'])).insertAfter(".views");
}
bindEvents(bindings);
$("#pageHeader").css("display","none");
});
}
// Done to initialize toolbar actions
function toolBarBinding() {
$('.evToolBar .tab-link').on('click.ev',function() {
var loadPageUrl = $(this).attr('href');
ev.router.loadModule(loadPageUrl);
return false;
})
}
return {
'init' : init,'initializeHeader' : initializeHeader,"afterPhoneLocaleFetched" : afterPhoneLocaleFetched
};
});
谁能帮我找出为什么会发生此错误,即使文件位于确切位置。
解决方法
您的 azure webapp 在 windows 平台上。表示你的程序部署在iis中,所以需要web.config文件来定义启动命令或默认文件。
在iis上部署任何语言程序都需要web.config、php、python、nodejs等,这些都是需要的。只需要静态资源的html文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。