При попытке развернуть проект Solid.js с помощью:
npm run build
Я получаю сгенерированную папку dist (index.html вместе с папкой ресурсов, содержащей js, css и изображения). Если я перемещаю эти файлы в корень веб-сервера, они работают отлично, но как только я перемещаю их в другую папку, они начинают ломаться. Почему это?
Я получаю 404 для всего, что включено в html-файл, но html-файл использует относительные пути к файлам, см. Пример:
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8" />
<meta name = "viewport" content = "width=device-width, initial-scale=1" />
<meta name = "theme-color" content = "#000000" />
<link rel = "shortcut icon" type = "image/ico" href = "/assets/favicon-0e726a38.ico" />
<title>Solid App</title>
<script type = "module" crossorigin src = "/assets/index-ee67cc3a.js"></script>
<link rel = "stylesheet" href = "/assets/index-ba74b708.css">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id = "root"></div>
</body>
</html>
Как это возможно, если я проверяю пути в файле js, я также получаю только относительные пути.
Редактировать: Я просто хотел бы добавить, что я тестирую это со свежесгенерированным проектом, поэтому у меня нет пользовательских путей, которые могут сломаться.
Пути в вашем html-файле не являются относительными, они относятся к корневой папке из-за начального /
:
src = "/assets/index-ee67cc3a.js"
Если вы хотите реструктурировать свою среду разработки, вам необходимо изменить конфигурацию vite. Для того, что вы описываете, нет конкретной настройки SolidJS.
Используйте свойство «base» в вашем vite.config.ts и добавьте полный путь.