Motore plugin/rotaie Redmine - Percorsi per immagini/JavaScript in un plug -in che si trova su ogni pagina?

StackOverflow https://stackoverflow.com/questions/5860884

Domanda

Bene, quindi ho un plugin per Redmine (motori Rails.) Il plugin utilizza i ganci in modo tale che i controlli HTML/vengono resi su ogni pagina di Redmine.

Ricevo e inviano informazioni da questo plugin al controller. Ora ho due opzioni che posso usare in JavaScript e CSS: percorso relativo o percorso assoluto.

Il percorso relativo non funzionerà per ogni pagina poiché i percorsi URL possono da una a tre sezioni per il percorso (poiché il controllo deve funzionare da ogni pagina). Questa opzione richiede che il mio plugin venga reso allo stesso livello nidificato nell'URL ogni volta che non lo è.

Absolute Pathing funziona per un'installazione particolare, ma il mio plug -in si rompe quando altri lo usano in installazione in cui il percorso non è sotto la radice del dominio cioè www.mysite.com/redmine/ invece di www.mysite.com. Ciò richiede un editing manuale che non è affatto elegante.

C'è un modo per affrontare facilmente questo problema apparentemente semplice?

È stato utile?

Soluzione

Se si tratta di un file CSS, JS o immagine, è possibile utilizzare gli helper tag con il :plugin Opzione (motori Rails patch questi)

stylesheet_link_tag 'redmine_kanban.css', :plugin => 'redmine_kanban'
javascript_include_tag 'jquery-1.3.2.min.js', :plugin => 'redmine_kanban'
image_tag 'example.png', :plugin => 'redmine_kanban'

Assicurarsi che il nome del plug -in corrisponda alla sua directory di installazione (ad es. Fornitore/plugin/reddemine_kanban nell'esempio sopra).

Per riferimento risorse come immagini nel tuo CSS, puoi utilizzare un file CSS esterno e url(../images/example.png. I motori Rails copieranno le risorse/directory su public/plugin_assets/plugin_name/[immagini | javascripts | fogli di stile] quindi devi solo scendere una directory per raggiungere le immagini.

JavaScript è un po 'più difficile. Il modo migliore sarebbe quello di esportare una variabile JavaScript del percorso relativo corrente. Faccio qualcosa del genere per esportare le stringhe di traduzione della lingua su JSON da usare nel mio JavaScript.

javascript_tag("var redmineRootPath = #{Redmine::Utils.relative_url_root}")

Spero che sia di aiuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top