henryvolkmer / asset-publisher
if you cant utilize Webpack, then you can use this Poormans assets publisher.
Requires
- symfony/config: >= 5.4 || ^6.1
- symfony/dependency-injection: >= 5.4 || ^6.1
- symfony/filesystem: >= 5.4 || ^6.1
- symfony/http-kernel: >= 5.4 || ^6.1
This package is auto-updated.
Last update: 2024-05-17 14:59:18 UTC
README
this is a lightweight Asset publisher.
Mostly your assets (images,css,java-script files) are located in project's vendor/
-Directory or other protected folders and are not accessable for Users Webbrowser.
The Section "assets" in the bundle-configuration provides the publish strategies. The Key sources
defines an array of Asset-Sources. The Sources-Array Key defines the target filename.
In this Example, the bootstrap.css is copied to %kernel.project_dir%/web/assets/style.css
:
publicpath: "%kernel.project_dir%/web/assets" sources: styles.css: - "%kernel.project_dir%/vendor/bootstrap/bootstrap.css"
Lets have a look at this configurationfile (config/packages/assets.yml
):
asset_publisher: assets: publicpath: "%kernel.project_dir%/web/assets" sources: # symlink: the folder "pictures" will be symlinked to web/assets/images images: - "%kernel.project_dir%/app/Resources/Views/pictures" # merge: asset-source are multiple files, all files will be merged into "web/assets/style.css" styles.css: - "%kernel.project_dir%/web/libs/library/extern-js/jquery-ui/jquery.tooltip.css" - "%kernel.project_dir%/web/libs/library/extern-js/fancybox/jquery.fancybox-1.3.4.css" # copy: asset-source is a single file and will be copied to web/assets/js-tree.min.css js-tree.min.css: - "%kernel.project_dir%/web/libs/library/extern-js/jstree/themes/default/style.min.css"
Publish strategies
Symlink
Create a symbolic Link from asset-source to publicpath
- source must be a Directory
Merge
merges all Asset-source Files into on common public file.
- sources must contain at least two files
Copy
copy the Asset-source to publicpath
- source must be a single file
Installation
composer require henryvolkmer/asset-publisher
- register the bundle in your bundles.php
<?php // config/bundles.php return [ // ... Henry\AssetPublisherBundle\AssetPublisherBundle::class => ['all' => true],