Как удалить закрывающий слэш в теге link при использовании Laravel Vite?

Как удалить слеш в конце строки, которая содержит 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, но не нашел способа удалить этот слеш.
  • 16 октября 2023 г. 10:58
Ответы на вопрос 2
По умолчанию в 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...
Похожие вопросы