Развертывание мрачного приложения на сервере apache 2 - PullRequest
0 голосов
/ 16 января 2020

У меня есть сайт Stati c, написанный на Gridsome, который я хотел бы развернуть на моем сервере LAMP под управлением Apache 2.4. Глядя на линию, я попробовал несколько решений, включая 200. html в каталоге и добавление файла .htacces в каталог с содержимым -

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

Но сайт загружается неправильно (нет css , js) и все страницы товара возвращаются 404 Not Found. В консоли я вижу, что файлы css и js возвращают 404 кода. Вот Apache журналы:

172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /furniture/ HTTP/1.1" 200 3894 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/css/0.styles.be923654.css HTTP/1.1" 404 490 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/js/app.f3ee1f73.js HTTP/1.1" 404 490 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/js/page--src-pages-index-vue.aca59de8.js HTTP/1.1" 404 491 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/js/app.f3ee1f73.js HTTP/1.1" 404 490 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/js/page--src-pages-index-vue.aca59de8.js HTTP/1.1" 404 490 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/static/favicon.ac8d93a.5667663fadd9573f98b6a9c36dd676aa.png HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/js/page--node-modules-gridsome-app-pages-404-vue.0ed1ba31.js HTTP/1.1" 404 490 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/js/page--src-pages-about-vue.de5a1202.js HTTP/1.1" 404 490 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:07 -0500] "GET /assets/js/page--src-templates-product-vue.05ad6ad3.js HTTP/1.1" 404 491 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"

И когда я пытаюсь go на одну из страниц продукта -

172.16.178.62 - - [16/Jan/2020:13:24:52 -0500] "GET /products/strul-rug/ HTTP/1.1" 404 491 "http://172.16.178.9/furniture/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
172.16.178.62 - - [16/Jan/2020:13:24:52 -0500] "GET /favicon.ico HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"

Обновление : я вижу проблема. При просмотре сети консоли разработчика все запросы URI:

Request URL:http://172.16.178.9/assets/css/0.styles.be923654.css
Request Method:GET 

Они должны быть

http://172.16.178.9/furniture/some/asset/to/get

Как можно это исправить? спасибо ..

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Получается очень просто. Мне нужно было добавить свойство pathPrefix в gridsome.config. js, чтобы сделать сборку включенной / furniture в URI.

// gridsome.config.js
module.exports = {
  siteName: "Ecommerce & Gridsome",
  pathPrefix: "/furniture",
  templates: {
    Product: "/products/:title" // Set route for allProduct node's
  }
};
0 голосов
/ 16 января 2020

Если это просто файл html, нет причины, по которой apache не сможет его обслуживать, но, поскольку вы изменили .htaccess, убедитесь, что файл apache .conf позволяет переопределить каталог файлы уровня htaccess. Я имею в виду, что конф вашего сервера позволяет вам oberride htaccess? в вашем основном apache файле conf должна быть строка, аналогичная следующей (по умолчанию она находится в /etc/apache2/apache2.conf):

    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

В общем, я не уверен, зачем вам это нужно htaccess файл, если все, что вы пытаетесь обслуживать, это файлы stati c HTML и CSS, JS.

...