Выгрузить мой сайт MVC в статические файлы

Я хочу создать простой сайт с помощью MVC, но затем отобразить «страницы» и соответствующие «активы» (js, css, изображения и т. Д.) В то, что можно было бы назвать «статическим сайтом».

Другими словами, я не хочу развертывать на сервере IIS, поддерживающем MVC. Я просто хочу создать сайт в MVC, а затем каким-то образом проанализировать эти страницы в статические файлы html / css / etc и загрузить сайт на обычный хост LAMP.

Есть ли простой способ автоматизировать это? Пакет NuGet? Двоичный? Расширение MVC, например, надстройка обработчика, которая может отображать статический сайт за один проход?


person Matt Kocaj    schedule 11.06.2012    source источник


Ответы (5)


Около 10 лет назад я загружал целые веб-сайты для автономного использования с помощью HTTrack Website Copier. Возможно, вы могли бы загрузить свой собственный веб-сайт, который дает вам красивую иерархию ваших статических веб-страниц. Если вы считаете, что все ваши веб-страницы доступны по ссылкам на домашней странице, ссылкам в меню и т. Д., Вы можете загрузить большую часть своего веб-сайта. По сути, вы можете найти в Google поисковые роботы / офлайн-браузеры / загрузчики веб-сайтов и т. Д. И запустить их, чтобы выполнить свою работу.

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

HTH

person Anil Vangari    schedule 11.06.2012
comment
Есть несколько хороших идей. Я надеялся, что есть более интегрированный способ сделать это ... но эти идеи будут работать как план б. Ваше здоровье - person Matt Kocaj; 12.06.2012

Если ваш сайт зависит от базы данных или другого динамического источника, будет практически невозможно выгрузить все возможные комбинации страниц в статические файлы. С другой стороны, если ваш сайт в значительной степени статичен, сохранить обработанный исходный код HTML / JS / CSS в файлы и загрузить его на сервер LAMP не составит большого труда.

person Darin Dimitrov    schedule 11.06.2012
comment
Здорово. Все статично - нет никаких условностей. Итак, когда вы говорите, что не будет слишком сложно, у вас есть с чего начать? - person Matt Kocaj; 11.06.2012
comment
Да, опция просмотра исходного кода вашего веб-браузера. - person Darin Dimitrov; 11.06.2012

Вы можете взглянуть на Pretzel, генератор статических сайтов .Net.

Обновление: очевидно, это не работает в проектах ASP.Net: Проблема № 123 . Он поддерживает только язык Razor для создания страниц содержимого.

person Mrchief    schedule 26.03.2013

Если причина для этого связана с производительностью, почему бы просто не использовать кеширование вывода и тому подобное, тогда страницы будут очень быстрыми (вы можете установить тайм-аут кеширования на очень длительный период времени), и вам не нужно запускать какой-то инструмент для преобразования и хранения вашего html отдельно от исходного кода.

Конечно, вам все равно нужно будет запускать IIS / .net

person Daniel Powell    schedule 12.06.2012
comment
Это не связано с производительностью. Мне просто нужна свобода создания простого статического сайта с помощью Visual Studio и инфраструктуры MVC, а затем преобразовать его в статический сайт, который можно разместить где угодно. - person Matt Kocaj; 12.06.2012
comment
взгляните на веб-страницы asp.net, это не поможет с преобразованием их в статические файлы, я не думаю, но это более легкий тип фреймворка для сайтов, ориентированных на более статический контент, и более простых сайтов - person Daniel Powell; 12.06.2012

У вас есть три варианта:

  1. Создайте свой веб-сайт, используя простой HTML, CSS, JQuery и изображения. Вы можете использовать Visual Studio Code в качестве IDE для создания файлов. Одна из проблем может заключаться в управлении общим верхним / нижним колонтитулом для вашего веб-сайта. Но вы можете решить эту проблему, вставив html-заголовок / нижний колонтитул с помощью jquery.

  2. Используйте CMS (систему управления контентом), например Umbraco, для размещения своего статического сайта. Umbraco индексирует и кэширует страницы для повышения производительности. У вас есть полный контроль над тем, что публиковать на своем веб-сайте и т. Д.

  3. Создайте веб-сайт с помощью .Net + MVC и используйте такие инструменты, как HTTrack, чтобы загрузить статическую копию веб-сайта. Вы даже можете автоматизировать процесс с помощью команд и запускать его после каждого развертывания или сборки и т. Д.

person TejSoft    schedule 24.03.2020