Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cssurlrewrite Bundle Laravel Package

fkr/cssurlrewrite-bundle

Symfony2/Assetic filter that rewrites relative url() paths in CSS so assets (images/fonts) resolve correctly after assets:install. Optionally rewrites only when the target file exists and can normalize/clean generated URLs.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Legacy System Modernization: Enables incremental improvements to Symfony 2/3 applications by fixing critical CSS asset path issues without full-stack rewrites. Reduces friction for teams maintaining older codebases while avoiding costly migrations.
  • Cross-Team Collaboration: Facilitates shared asset usage across Symfony bundles (e.g., @VendorBundle/img/logo.png), improving modularity and reducing duplication for frontend/backend teams.
  • Cost-Effective Technical Debt Reduction: Eliminates manual CSS path fixes (e.g., ../img/foo.png/bundles/bundlename/img/foo.png) with a 10-minute setup, saving dev hours compared to custom solutions or frontend tooling.
  • Consistency Across Environments: Resolves "works on my machine" issues by normalizing asset paths in development, staging, and production, critical for distributed teams.
  • Edge-Case Handling: Supports base64-encoded images and path normalization (e.g., ../less/../img../img), addressing complex CSS architectures without frontend expertise.
  • Build vs. Buy Decision: Avoids reinventing URL rewriting logic, justifying adoption over custom Assetic filters or frontend build tools (e.g., PostCSS plugins) for Symfony 2/3 projects.

When to Consider This Package

Adopt If:

  • You’re maintaining a Symfony 2/3 application with Assetic-based asset pipelines and need to fix broken CSS paths (e.g., missing images, fonts).
  • Your team lacks frontend expertise but requires cross-bundle asset references (e.g., @VendorBundle/img/logo.png).
  • You prioritize simplicity and speed over cutting-edge tooling (e.g., no Webpack/Vite overhead).
  • Your CSS relies on relative paths (../img/foo.png) that break in production due to Symfony’s bundle structure.
  • You need a low-risk, no-config solution for path normalization (e.g., resolving ../less/../img to ../img).

Avoid If:

  • You’re using Symfony 4+: Modern alternatives (Webpack Encore, Vite, Laravel Mix) offer superior asset pipeline capabilities.
  • Your team uses frontend-first workflows (e.g., JavaScript-based bundling with PostCSS/Sass), making this PHP-centric solution redundant.
  • You require active maintenance: Last release in 2016; evaluate risk for long-term projects or plan a migration.
  • Your project involves microservices or SPAs: Not designed for decoupled asset serving (e.g., static hosts like Cloudflare R2).
  • You already have Assetic filters or Twig extensions handling URL rewriting, making this package redundant.
  • You’re on Laravel: This package is Symfony-specific; Laravel uses Laravel Mix/Webpack for asset pipelines.

How to Pitch It (Stakeholders)

For Executives:

*"This package fixes a hidden but costly technical debt in our Symfony 2/3 application: broken CSS asset paths that cause visual regressions in staging and production. For example, a simple background-image: url(../img/logo.png) might render as a 404 in production because Symfony’s bundle structure changes the working directory. This tool normalizes those paths automatically—like a ‘symlink’ for frontend assets—so @VendorBundle/img/logo.png always resolves correctly.

Why it matters:

  • Reduces support tickets from broken UI elements (e.g., missing icons, fonts).
  • Saves dev time by eliminating manual CSS path fixes across bundles.
  • Low risk: A 10-minute install with no new dependencies; just fixes what’s already broken.
  • Future-proofs legacy code: Enables incremental improvements without a full Symfony upgrade.

Tradeoff: It’s tailored for Symfony 2/3 and won’t work in Symfony 4+. If we’re planning a migration, we should pair this with a roadmap to modern asset pipelines like Webpack Encore. But for now, it’s a high-ROI, low-effort fix for a persistent pain point."*


For Engineers:

*"If you’re tired of debugging 404s for CSS background images or fonts in Symfony 2/3, this Assetic filter automates path resolution. Here’s how it helps:

Key Features:

  1. Cross-Bundle Asset References:
    • Use @VendorBundle/img/logo.png in CSS and let the filter resolve it to /bundles/vendorbundle/img/logo.png.
    • No more copying assets between bundles or hardcoding paths.
  2. Path Normalization:
    • Fixes edge cases like ../less/../img/foo.png../img/foo.png.
    • Handles base64-encoded images (e.g., background-image: url(data:image/png;base64,...)).
  3. Zero Config:
    • Drops into existing Assetic pipelines via the css_url_rewrite filter in Twig:
      {% stylesheets filter='css_url_rewrite' '@BundleName/Resources/public/css/style.css' %}
          <link rel="stylesheet" href="{{ asset_url }}">
      {% endstylesheets %}
      
  4. Symfony 2/3 Focus:
    • Works out of the box for legacy apps but won’t work in Symfony 4+ (Assetic is deprecated).
    • Last updated in 2016, so treat it as a short-term fix if you’re planning an upgrade.

When to Use It:

  • You’re on Symfony 2/3 and need a lightweight CSS path fixer.
  • Your team lacks frontend expertise but requires reusable asset references.
  • You want to avoid reinventing URL rewriting logic.

Alternatives:

  • Symfony 4+: Use Webpack Encore or Vite for asset pipelines.
  • Laravel: Build a custom PostCSS/PostHTML plugin or use Laravel Mix.
  • Custom Solution: Write an Assetic filter if you need more control.

Risks:

  • No active maintenance: Could break if Assetic changes (unlikely for Symfony 2/3).
  • Assetic dependency: If you’re already migrating away from Assetic, this won’t help.

Recommendation: Try it in staging for a week. If it fixes your CSS path issues without side effects, it’s a worthwhile stopgap. Pair it with a plan to migrate to Webpack/Vite if you’re upgrading Symfony."*


Example Use Case for Stakeholders: "Imagine our dashboard uses a CSS file with background-image: url(../img/dashboard-bg.png). In development, this works because the working directory is the bundle root. But in production, Symfony’s /bundles/ structure changes the context, and the image 404s. This package fixes that automatically—no more hunting down broken paths across environments."

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
directorytree/privacy-filter-classifier
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi