# \[rails\] cambiare default public paths?

**URL:** <https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071>\
**Category:** IT\
**Created:** [July 22, 2007, 4:23pm UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071 "2007-07-22T16:23:23Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 22, 2007, 4:23pm UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/1 "2007-07-22T16:23:23Z")

</div>

Salve! Esiste per caso un sistema per cambiare i path relativi alla  
parte public? Es. io vorrei piazzare i miei file in cartelle come img,  
js o css, cosÃ¬ come faccio di solito, ma tali cartelle in rails si  
chiamano javascripts, images, ecc. , e tra l’altro alcuni helper (vedi  
quelli realitivi a javascript) sono legati a quei nomi.

Non trovo alcun riferimento in merito nei vari file di configurazione, e  
neanche nel libro di Thomas. Qualcuno ne sa qualcosa? 🙂

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 23, 2007, 4:14pm UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/2 "2007-07-23T16:14:05Z")

</div>

Luca R. wrote:

> Salve! Esiste per caso un sistema per cambiare i path relativi alla  
> parte public? Es. io vorrei piazzare i miei file in cartelle come img,  
> js o css, cosÃ¬ come faccio di solito, ma tali cartelle in rails si  
> chiamano javascripts, images, ecc. , e tra l’altro alcuni helper (vedi  
> quelli realitivi a javascript) sono legati a quei nomi.
> 
> Non trovo alcun riferimento in merito nei vari file di configurazione, e  
> neanche nel libro di Thomas. Qualcuno ne sa qualcosa? 🙂

Visto che e’ opensource, si puo’ guardare come e’ implementato

file actionpack/lib/actionview/helper/asset\_tag\_helper.rb

def image\_path(source)  
#…  
compute\_public\_path(source, ‘images’, ‘png’)  
end

def stylesheet\_path(source)  
compute\_public\_path(source, ‘stylesheets’, ‘css’)  
end

quindi, la sottocartella e’ cablata nel codice.  
Se vuoi modificarla, devi ridefinirti i metodi

Ciao  
Massimo

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 23, 2007, 4:32pm UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/3 "2007-07-23T16:32:23Z")

</div>

Grazie, capito! Strano che non si possa configurare in un modo +  
semplice no? Seconto te Ã¨ possibile che la cosa venga implementata +  
avanti?

> Luca R. wrote:
> 
> > Salve! Esiste per caso un sistema per cambiare i path relativi alla  
> > parte public? Es. io vorrei piazzare i miei file in cartelle come img,  
> > js o css, cosÃ¬ come faccio di solito, ma tali cartelle in rails si  
> > chiamano javascripts, images, ecc. , e tra l’altro alcuni helper (vedi  
> > quelli realitivi a javascript) sono legati a quei nomi.
> > 
> > Non trovo alcun riferimento in merito nei vari file di configurazione, e  
> > neanche nel libro di Thomas. Qualcuno ne sa qualcosa? 🙂
> 
> Visto che e’ opensource, si puo’ guardare come e’ implementato
> 
> file actionpack/lib/actionview/helper/asset\_tag\_helper.rb
> 
> def image\_path(source)  
> #…  
> compute\_public\_path(source, ‘images’, ‘png’)  
> end
> 
> def stylesheet\_path(source)  
> compute\_public\_path(source, ‘stylesheets’, ‘css’)  
> end
> 
> quindi, la sottocartella e’ cablata nel codice.  
> Se vuoi modificarla, devi ridefinirti i metodi
> 
> Ciao  
> Massimo

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 23, 2007, 5:01pm UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/4 "2007-07-23T17:01:43Z")

</div>

Luca R. wrote:

> Grazie, capito! Strano che non si possa configurare in un modo +  
> semplice no? Seconto te Ã¨ possibile che la cosa venga implementata +  
> avanti?

Non lo so; un parametro opzionale potevano anche metterlo; si vede che  
non volevano offendere il “convention over configuration”…  
Comunque, ti basta ridefinire quei due/tre metodi (qualche riga di  
codice) e sei a posto (oppure… rinominare le cartelle in images,  
stylesheets, javascripts 🙂 )

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 26, 2007, 12:45am UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/5 "2007-07-26T00:45:51Z")

</div>

I path relativi a public sono definiti in:

actionpack/lib/actionview/helpers/asset\_tag\_helper.rb:42

module ActionView  
module Helpers  
module AssetTagHelper  
# …

```
  ASSETS_DIR = defined?(RAILS_ROOT) ? "#{RAILS_ROOT}/public" :

```

“public”  
JAVASCRIPTS\_DIR = “#{ASSETS\_DIR}/javascripts”  
STYLESHEETS\_DIR = “#{ASSETS\_DIR}/stylesheets”

```
  # ...
end

```

end  
end

Ti consiglio di creare un plugin per modificarne i valori.

Ad ogni modo, concordo con David: che senso ha cambiare i path? uno dei  
cardini del successo di Rails Ã¨ il non doversi preoccupare di questi  
aspetti marginali, ma concentrarsi sull’applicazione vera e propria.

LG

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 26, 2007, 12:46am UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/6 "2007-07-26T00:46:13Z")

</div>

On Sun, 22 Jul 2007 16:23:23 +0200, Luca R. wrote:

> Salve! Esiste per caso un sistema per cambiare i path relativi alla  
> parte public? Es. io vorrei piazzare i miei file in cartelle come img,  
> js o css, così come faccio di solito, ma tali cartelle in rails si  
> chiamano javascripts, images, ecc. , e tra l’altro alcuni helper (vedi  
> quelli realitivi a javascript) sono legati a quei nomi.
> 
> Non trovo alcun riferimento in merito nei vari file di configurazione, e  
> neanche nel libro di Thomas. Qualcuno ne sa qualcosa? 🙂

Oh, il modo ci sarà, forse anche senza monkey patching, ma il punto è: Rails  
è opinionated software e dunque ritiene che quelle cartelle si debbano  
chiamare così punto e basta. L’idea è che dobbiamo smetterla a ‘litigare’ su  
cose meno importanti, come nomi e strutture delle cartelle e  
concentrarci sulle cose che contano. A volte mi trovo in disaccordo con  
i Rails-isti, ma mi adeguo e spesso scopro che avevano ragione (o che  
comunque non cambia un granché).

In breve dunque: ci sarà il modo, ma non è configurabile in senso classico.

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 26, 2007, 9:38am UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/7 "2007-07-26T09:38:28Z")

</div>

Luca R. wrote:

> Grazie, capito! Strano che non si possa configurare in un modo +  
> semplice no? Seconto te Ã¨ possibile che la cosa venga implementata +  
> avanti?

A quanto pare, qualcosa hanno implementato. Io ti avevo riportato il  
codice dell’ultimna versione rilasciata (1.2.3), ed era cablato; ma nel  
repository, come riportato sopra da Luca, sono state introdotte le  
costanti.

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 26, 2007, 9:58am UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/8 "2007-07-26T09:58:15Z")

</div>

Ok ragazzi, grazie. Io sono nuovo di rails e della programmazione  
dinamica in genere, sto facendo i primi progettini ora. Vi ringrazio  
molto per ogni delucidazione!

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [July 26, 2007, 12:45am UTC](https://www.ruby-forum.com/t/rails-cambiare-default-public-paths/110071/9 "2007-07-26T00:45:59Z")

</div>

On Mon, 23 Jul 2007 16:32:23 +0200, Luca R. wrote:

> Grazie, capito! Strano che non si possa configurare in un modo +  
> semplice no? Seconto te è possibile che la cosa venga implementata +  
> avanti?

Penso sia assai improbabile che venga implementato, appunto per i motivi  
di cui sopra. La loro opinione è che debbano chiamarsi così e o gli fai  
cambiare opinione (auguri…! 🙂 o ti adegui…
