Посмотрите в сторону net core. Из плюсов будет единая кодовая база как для публичного сервиса так и для ваших внутренних проектов, как то бухгалтерия и отчетность.
fowiv, Если вы думаете что люди при общении с вами считают вас "Лошком", то у меня для вас плохие новости.
— Мой дед говорил: «В первый раз услышав кличку "лошадь" — врежь обидчику в нос, во второй назови наглеца уродом, в третий раз обзовут лошадью — отправляйся в лавку и покупай седло».
Крупные компании обычно так "кидают" настройщиков. Собственно их задача прийти в определенное место, воткнуть флешку с образом и нажать кнопки. Как правило человек думает что за этим последует установка и настройка остального софта, но дальше цепляется удаленный админ и все ставит через GPO
Скорее о знании людей. И гемороях в проектах. Но я очень рад что вы оценили мой уровень. Обращайтесь, когда задачка "да что тут делать, тут работы на час" у вас не выйдет.
Плюс гляньте в документацию, там есть роутер, соответственно можно определить текущую страницу, мой предыдущий код для общего случая, работает вне зависимости от фреймворка
if(window.location.href.indexOf('cards.html') > -1){
// select menu item
var carditemmenu = document.getElementById('cardItem');
// делаете что то с пунктом меню
carditemmenu.classList.add("mystyle");
}
Держите фронт для вас, я так думаю сильно упростит дело, избавитесь от строк, и пхп будет заниматься только сокращением и выдачей результата который кодируется в json
Если у вас есть Jquery, да и без него можно сделать.
Нарисуйте голую страницу с дизайном.
Добавьте магии jquery.
Обращайтесть только к api.
var data = {};
data.srcUrl = $('#input').value();
$.post('test.com/short.php', data)
.done(function( response ) {
$('.result_box').text(response.url);
// alert( "Data Loaded: " + response );
})
// .fail() ////обработка ошибок
/// .always() // что то что нужно выполнить всегда, например остановить лоадер
;
Алгоритм следующий: последняя цифра в имени файла это папка первого уровня вложения, вторая цифра это папка второго уровня вложения, далее идет полное имя файла.
то есть запрос img.localhost/1234.png мапится в физический путь
v:/project/localhost/localhost/wwwroot/uploads/4/3/1234.png
Есть вообще интересный но затратный вариант. Генерировать клиентские сертификаты и разрешать соединяться только по ним.