Member 12583662 Ответов: 2

Fontawesome, ajax, jquery не работают после публикации из-за несоответствия URL-адреса в MVC


Ноль вниз голосовать
любимый


Привет, я опубликовал свое приложение MVC на локальном сервере. URL-адрес http://5.189.146.208/DM но немногие вещи, такие как Ajax, Jquery и Font awesome, не работают и дают ошибку 404 в консоли разработчика. экран ошибки на самом деле путь в BundleConfig

bundles.Add(new StyleBundle("~/font-awesome/css").Include(
                      "~/fonts/font-awesome/css/font-awesome.min.css", new CssRewriteUrlTransform()));

который также виден в ошибке, но URL-адрес приложения имеет /DM, который является псевдонимом или именем основной папки приложения (URL-адрес указан выше), и не получает caputred в URL-адресе и дает ошибку 404 из-за несоответствия.

А в ajax вызове я использовал динамический метод т. е.

var url = '@Url.Action("GetMonthWiseData","Home")';
                    drawChart(url);
function drawChart(url) {

                $.ajax({
                    type: 'GET',
                    url: url,
                    data: {},
                    dataType: 'json',
                    success: function (data) {
                        var dataset1 = new Array();
                        var dataset2 = new Array();

'@Url. Action ("GetMonthWiseData", "Home")' но он также не работает. Пожалуйста, помогите.

Что я уже пробовал:

попробовал изменить путь на относительный в Ajax, например @url.Действие

2 Ответов

Рейтинг:
12

Member 12583662

Привет, теперь все работает нормально. Я действительно не знаю, в чем была проблема. Теперь я наконец-то использовал CDN для этого. Но fontawesome dint работал без CDN.
Также я написал CDN в последней строке в теге head, раньше он был где-то в центре тега head.

Но до сих пор не знаю, что было не так раньше и почему это работает сейчас. Только на это я потратил и потратил впустую 5-7 дней.

Спасибо всем, особенно Сриканцаху


Рейтинг:
1

SrikantSahu

В идеале @Url. Action () дает вам абсолютный url-адрес контроллера. Поэтому, пожалуйста, проверьте, правильно ли создан виртуальный каталог (DM) или нет. Если он будет создан правильно, то вы получите url-адрес типа "http://5.189.146.208/DM/Home/GetCountryWiseData".

В противном случае для временного решения вы можете использовать жестко закодированное значение DM в конфигурации маршрута.

context.MapRoute(
            name: "app",
            url: "DM/{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
bundles.Add(new StyleBundle("~/font-awesome/css").Include(
                      "~/fonts/font-awesome/css/font-awesome.min.css", new CssRewriteUrlTransform())); //Make sure if <Root>/fonts/font-awesome/css/font-awesome.min.css exists 
Кроме этого, я не вижу никаких проблем с пакетами. Если они работают в IISExpress, то будут отлично работать и в IIS при развертывании.


Member 12583662

Привет, Сриканцаху, большое спасибо за ответ. Я не хочу жестко кодировать изменения, так как мне придется менять их снова во время разработки и тестирования на моей локальной машине.
И каталог DM создается, и если я упомянул путь DM в URL-адресе, то он работает нормально, но того же самого нет при локальном запуске. а также то, как я делаю путь FontAwesome динамичным, а не жестко закодированным.
Спасибо

F-ES Sitecore

Но создали ли вы его как виртуальный каталог? Вы не можете просто создать папку под названием DM, поместить в нее свои файлы и ожидать, что .net будет знать, что на самом деле это не папка, а корень сайта.

Member 12583662

Привет, да, это виртуальный каталог с именем DM.

Member 12583662

точный путь на сервере d:/Guri/DM/
DM-это папка, в которой находятся все файлы и папки опубликованного приложения. Я также дал DM в качестве имени виртуального каталога.

Member 12583662

что я могу использовать в Замена @URL-адрес.действия (), чтобы сделать мой путь URL-адреса динамически. Путь на сервере таков "http://5.189.146.208/DM/Home/GetCountryWiseData", но локально это так "http://localhost: (portno) / Home / GetCountryWiseData"

SrikantSahu

Просто попробовал в образце приложения. Оба @ url.Действие и связка работают нормально. Пожалуйста, перепроверьте, как вы развернули решение. Вот ссылка "http://www.c-sharpcorner.com/article/deploying-your-asp-net-mvc-5-app-to-iis-8/".

Member 12583662

Привет, г-н Сахну, он отлично работает на локальной машине, но не на сервере из-за добавления виртуального каталога с именем DM, которого нет в URL. Спасибо.

Member 12583662

Я прошел по ссылке и настроил IIS на своей локальной машине. Здесь та же проблема. Нет jquery/Ajax и даже нет FontAwesome

SrikantSahu

Я только что проверил ваш сайт http://5.189.146.208/DM я думаю, что пакет font-awesome загрузился просто отлично. Вы можете посмотреть веб-разработчика Chrome (клавиша F12) -&ГТ; источник (вкладка) - и GT; топ&ГТ;5.***.***.**-&ГТ;шрифт-удивительным-и GT; в CSS?***. точно так же пучки на jQuery также загружен.