Как удалить слеш в конце строки, которая содержит URL в вашем проекте Laravel, использующем Vite для сборки ресурсов, таких как CSS?
В шаблоне:
@vite('resources/css/style.css')
В конфигурации (vite.config.js):
export default defineConfig({
plugins: [
laravel({
input: [
'resources/css/style.css',
(и т.д.)
На выходе (в Html):
<link rel="stylesheet" href="https://ДОМЕН/build/assets/css/style.css" />
Я искал информацию в документации и проблемах (issues) Laravel и Vite, но не нашел способа удалить этот слеш.
По умолчанию в Laravel Vite пакете слеш добавляется в конце URL ресурсов. Однако вы можете удалить этот слеш, внес некоторые изменения в файл vite.config.js.
В файле vite.config.js найдите секцию, отвечающую за генерацию URL ресурсов, и внесите следующие изменения:
```javascript
export default defineConfig({
build: {
assetsDir: '',
manifest: true,
rollupOptions: {
output: {
entryFileNames: `assets/[name].[hash].js`,
chunkFileNames: `assets/[name].[hash].js`,
assetFileNames: `assets/[name].[hash].[ext]`, // Удалите слеш после символа расширения файла
}
}
}
});
```
Затем при сборке ресурсов Vite не добавит слеш в конце URL, и тег link будет выглядеть следующим образом:
```html
<link rel="stylesheet" href="https://ДОМЕН/build/assets/css/style.css">
```
Помимо этого, из шаблона @vite() также необходимо удалить слеш и внести следующие изменения:
```blade
@vite('resources/css/style.css/')
```
в
```blade
@vite('resources/css/style.css')
```
Теперь закрывающий слеш должен быть удален в конечном результате.
в шаблоне blade, вместо использования `@vite([...])`, можно непосредственно указывать стили следующим образом: ``. Для удобства можно добавить метод `Vite::macro()` в `app/Providers/AppServiceProvider.php`, чтобы была возможность указывать пути к изображениям, js и контенту из папки `public/`. Также можно создать отдельные методы для работы со стилями из папки `resources/css`, если стили разделены на части. В этом случае нужно будет их импортировать или указать в конфигурации Vite. Подробности можно изучить в исходном коде по ссылке: https://github.com/laravel/framework/blob/10.x/src... Если возникнут трудности, всегда полезно осмотреть исходный код =) Примечание: Согласно спецификации HTML, различия между наличием или отсутствием косой черты `/` в одиночных тегах нет. Однако, для одиночных тегов обычно рекомендуется добавлять эту косую черту в конце. Более подробную информацию можно найти в разделе 6 спецификации HTML: https://html.spec.whatwg.org/multipage/syntax.html...