На этот вопрос уже есть ответ:
Я использую R Studio IDE для выполнения многих задач, одна из которых - обслуживание локальных веб-сайтов с использованием пакета blogdown , который является ответвлением hugo . Я пишу код в R Studio и просматриваю сайт, используя команду blogdown :: serve_site ()
. Это самый простой из известных мне способов предварительного просмотра статических HTML-сайтов. Использование hugo R Studio заставляет мой браузер перейти на 127.0.0.1: XXXX
местоположение и мой локальный сайт просматривается у меня на глазах.
Могу ли я самостоятельно обслуживать локальные сайты с помощью Ubuntu 18.04? Как? Думаю, это должно быть очень просто. Однако, ища в Интернете, я не могу найти простого способа сделать это. Если я просто открою статические HTML-файлы прямо в браузере, они покажутся ненадежными. Все ссылки на изображения сразу разрываются. Форматирование заголовков, гиперссылок и т. Д. Отличается от того, когда я обслуживаю страницу локально с помощью hugo .
РЕДАКТИРОВАТЬ - я действительно не определял свой термин «простота». В ответах есть два разных подхода (пока): один самый простой для конечного пользователя, а другой простой в отношении операций, выполняемых моим компьютером. Мне нравятся оба подхода, и я буду приветствовать ответы, использующие любой подход, когда я их тестирую. Спасибо.
Поставки Ubuntu с помощью python3 как ее значение по умолчанию, и они пошли на многое для создания этого чрезвычайно легким для нас :D
Для запуска http сервера на порте порта просто вводят
python -m http.server port
Если Вы хотите совместно использовать файлы и директоров, CD в то, какой бы ни каталог Вы хотите служить
cd /my/html/files
python -m http.server 8080
Если Вы хотите использовать адрес кроме значения по умолчанию 0.0.0.0
можно использовать --bind
Исключая: python -m http.server 8080 --bind 127.0.0.1
будет служить им в адресе 127.0.0.1:8080
:)
Править: Было ли это действительно большими длинами, я оставлю это читателю
Также для Вашего удобства вот является ссылка на документы https://docs.python.org/3/library/http.server.html
Вот список сервера HTTP в одной строке. Я уверен, что существует тот, который будет соответствовать Вашим инструментам целей / существующим инструментам.
После этого подмножество ссылки, которая содержит, по-моему, самые удобные.
Python:
python -m http.server 8000
Ruby:
ruby -run -ehttpd . -p8000
Узел:
npm install -g http-server
http-server -p 8000
Php:
php -S 127.0.0.1:8000
Один простой способ установить статический http сайт состоит в том, чтобы использовать darkhttpd
Нет никакого пакета в человечности для этого, но программное обеспечение является всего одним единственным исходным файлом, который можно загрузить tarball на сайте или с мерзавцем:
git clone https://unix4lyfe.org/git/darkhttpd
cd darkhttpd
Затем выполненный make
и у Вас есть свой darkhttpd исполняемый файл. (Поместите его в /usr/local/bin
сделать это доступным для каждого пользователя)
Выполненный
./darkhttpd /path/to/wwwroot
или
./darkhttpd --help
получить справку о команде
Можно указать каталог или порт для использования и много других опций.
sudo apt install apache2
установит apache2 веб-сервер. По умолчанию это обеспечивает доступ к index.html
в /var/www/html
папка; замена этого файла с тем, что Вы хотите разместить, является самым легким способом сделать вещи, затем можно перейти на http://127.0.0.1 на локальной машине, или на IP-адрес машины в сети, и это будет служить страницам.
Если Вы - пользователь Google Chrome, это может быть столь же легко как использование веб-сервера для Chrome. Просто установите его, запустите его, нажмите Choose Folder для выбора каталога, который содержит статические файлы.
Если Вы не хотите помнить аргументы команды Python, используйте лай:
Description: share files through HTTP protocol
Woof (Web Offer One File) is a tool to copy files among hosts. It can serve a
specified file on HTTP, just for a given number of times, and then exits.
Features include:
* it can share stuff "one shot" and exit just after he served that file.
* it can share things among different operating system or different devices
(e.g.: a smartphone), and allows one to upload files easily.
* it can also show a simple html form in order to upload file (useful if the
client hasn't a way to serve the file).
Можно установить его на Debian/Ubuntu с
apt install woof
И используйте как
woof kittens.png
Это распечатает URL для помещения в браузер в другом конце.
Один из самых простых (и самое ограниченное) решения использовал бы netcat
как описано в этой статье:
while true; do { echo -e "HTTP/1.1 200 OK\r\n$(date)\r\n\r\n<h1>hello world from $(hostname) on $(date)</h1>" | nc -vl 8080; } done
Этот пример служит на порте 8080, служение на первых 1 024 портах потребует, чтобы Вы использовали sudo
. Можно также служить файлу этот путь просто при помощи cat filename
.
Поскольку более сложный пример проверяет bashttpd.
Также отметьте различия между netcat-традиционным и netcat-openbsd. Ubuntu обеспечивает обе версии.