Strumento per identificare (e rimuovere) i file del sito Web non necessari? [chiuso]

3

Inevitabilmente smetterò di usare un css antiquato, uno script o un file immagine. Soprattutto quando un designer separato sta armeggiando con le cose e testando alcune versioni di immagini. Prima di costruirne uno io stesso, ci sono degli strumenti che esploreranno un sito Web e elencano i file non collegati? In particolare, sono interessato ai siti ASP.NET MVC, quindi è importante rilevare le chiamate a (e tra le altre cose) @ Url.Content (...).

    
posta xanadont 19.10.2012 - 01:43
fonte

1 risposta

0

A parte il sito web statico, l'attività sarebbe piuttosto casuale:

  1. Non è possibile eseguire la scansione del codice sorgente per trovare i collegamenti, poiché è possibile generare collegamenti. Immagina il seguente caso:

    In una pagina, quando un utente effettua un'azione, viene aggiunta un'immagine al DOM (quindi in realtà non hai alcun elemento <img/> in HTML in origine). Il collegamento a un'immagine è assegnato da JavaScript. Per trovare una parte di questo collegamento, JavaScript esegue una richiesta AJAX; l'altra parte è hardcoded nel codice JavaScript. L'URI finale è link

    Il server riceve la richiesta per l'immagine e riscrive l'URL per link . Sembra che il nuovo URI indichi una risorsa dinamica che genera l'immagine prendendone una esistente (/photos/catalog/133d6566-3c98-4690-be4a-caad41c0e21d.jpg) e aggiungendo un copyright.

    Potresti tracciare automaticamente questa situazione?

  2. Non puoi fare affidamento sui log, poiché il fatto che la risorsa non sia stata richiesta per un po 'di tempo non significa che non sarà mai richiesta.

L'unica alternativa valida è:

  • Elenca tutte le risorse sul sito web,

  • Raccogli le statistiche dai log per filtrare le risorse utilizzate negli ultimi N mesi. Non dimenticare una quantità enorme di piccoli problemi che possono sorgere: ricorda che c'è la riscrittura degli URL, che devi canonizzare le richieste, che ci sono pagine predefinite (http://example.com/index.html sarà per lo più chiamato link ), ecc.

  • In base a tali statistiche, dimentica le risorse in uso: non è necessario rimuoverle.

  • Per le risorse rimanenti, prova a indovinare per ognuno il contesto in cui potrebbe essere utilizzato, e controlla se lo è. Quest'ultimo passaggio è estremamente complesso per un programma e richiede cervello umano (o anni e anni di R & D).

Come nota a margine, sai che invece di Url.Content , ASP.NET MVC 4 permette di usare ~ direttamente, come questo:

<a href="~/Products/Edit/458">Edit</a>
    
risposta data 19.10.2012 - 12:45
fonte

Leggi altre domande sui tag