//Following code return file name only
string[] FileFullPath;
string FileName;
objOpenFileDialog.Title = "Select Center Logo";
objOpenFileDialog.ShowDialog();
FileFullPath = objOpenFileDialog.FileNames[0].ToString().Split('\\');
FileName = FileFullPath[FileFullPath.Length - 1]; //return only File Name
//Use following code if u want save other folder ,
// following code save file to CenterLogo folder which inside bin folder//
System.IO.File.Copy(OFD.FileName, Application.StartupPath +
"/CenterLogo/" + FileName, true);
Чтобы получить доступ к значению --deploy-url
во время выполнения приложения, создайте deploy-url.ts
с помощью:
export const DEPLOY_URL = new InjectionToken<string>('deployUrl');
И используйте этот фрагмент в файле main.ts:
const deployUrl = (function() {
const scripts = document.getElementsByTagName('script');
const index = scripts.length - 1;
const mainScript = scripts[index];
return mainScript.src.replace(/main.*?\.js$/, '');
})();
const DEPLOY_URL_PROVIDER = {
provide: DEPLOY_URL,
useValue: deployUrl,
};
platformBrowserDynamic([DEPLOY_URL_PROVIDER])
.bootstrapModule(AppModule)
.catch(err => console.error(err));
Идея получить URL исполняемого в данный момент файла Javascript, который является main.js (или main.hash.js, если включено outputHashing
) и удалить из него имя файла. Затем в ваших сервисах введите значение --deploy-url
с @Inject(DEPLOY_URL) deployUrl: string
в качестве параметра конструктора.
Я столкнулся с точно такой же ситуацией, и, как вы обрисовали в общих чертах в The Background , сборка с использованием набора base-href
и deploy-url
работает в том смысле, что мы можем обслуживать нашу CSS. и js файлы из CDN при размещении приложения на другом сервере.
В качестве решения для динамически загружаемых ресурсов в наших шаблонах мы написали API, который предоставляет переменные среды для этой цели, которые предоставляют соответствующие URL-адреса, необходимые для развертывания.