I think it means people don't feel strongly about it one way or the other. It's 
good because no one hates the idea.




I personally would love to have fully dynamic error pages that could use my 
`_header.html.erb` and `_footer.html.erb` so when I make a change to one I 
don't have to copy it over to the error page, the problem is if you have an 
error in your error page then everything breaks.




To help mitigate this I wanted to introduce the concepts of multiple error 
fallback pages, but it went nowhere https://github.com/rails/rails/pull/8425 I 
closed it due to lack of interest.




Some changes are better debated as a PR. It sounds like this one might depend 
heavily on the implementation. Go ahead and give it a shot. Even if it isn't 
merged, you'll learn plenty about Rails internals :)


---Richard Schneeman


http://www.schneems.com

On Fri, Jul 31, 2015 at 9:05 AM, null <iybet...@gmail.com> wrote:

> https://github.com/rails/sprockets-rails/issues/49 (which is locked so no 
> further discussion is possible there) debates whether asset precompile 
> should create a non-digest version of the assets.
> There are a few valid use cases for this, and I do not have solutions for 
> all of them, but I just thought of a solution to one--static error pages.
> @pelargir, in some of the first comments on the issue 
> (https://github.com/rails/sprockets-rails/issues/49#issuecomment-20529994, 
> https://github.com/rails/sprockets-rails/issues/49#issuecomment-20531267), 
> stated the issue:
>> Removing generation of non-digest files also makes is impossible to have 
> static 404 error pages that use the same images, JS, and CSS as the 
> remainder of the site (without making duplicate non-digest copies of those 
> files in /public). But then I end up with two copies of the same file in my 
> app.
>> Am I supposed to copy the precompiled file into /public and remove the 
> fingerprint from the filename? So then, if I change the file in the future, 
> I have to precompile, copy, and rename all over again?
> My idea is to make the static error pages part of the asset pipeline. 
>  Instead of generating public/500.html, public/404.html, etc, a new rails 
> app should generate app/assets/html/500.en.html.erb, 
> app/assets/html/404.en.html.erb, 
> etc.  "app/assets/html/*"  should by default be included in 
> config.assets.precompile (which I believe it is anyway since it's in 
> app/assets and the extension is neither .css or .js).
> There are 2 places where the behavior would be significantly different than 
> of all other assets, so things would get a little tricky here:
> 1) Unlike other assets, these would need to be precompiled in the context 
> of a layout.  This could be either the same application layout as the rest 
> of the application (app/views/layouts/application.html.erb ), or the "rails 
> new" generator could create a separate 
> app/assets/html/error_layout.en.html.erb (which itself should be excluded 
> from precompiled).  Telling sprockets when to compile in the context of a 
> layout could be tricky, but an alternative is just to code that into the 
> view.  Below is an example from an existing project of mine.  It's in HAML, 
> not ERB, but still illustrates the point:
>     # app/assets/html/500.en.html
>     - layout = Rails.root.join("app", "assets", "html", 
> "error_layout.en.haml")
>     = Haml::Engine.new(File.read layout).render do
>       %h5 We're sorry, but something went wrong.
>       %p Our developers are working on it.
> 2) Error pages currently live in public, but with this approach, they would 
> end up in public/assets, and would have digests in their file names.  So we 
> would need to change 
> https://github.com/rails/rails/blob/v4.2.3/actionpack/lib/action_dispatch/middleware/public_exceptions.rb#L44
>  
> to look in "public/assets" and use the appropriate digests, and add a 
> Depracation warning (that shows up in development environment) if the error 
> pages are found in "public".
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Core" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to rubyonrails-core+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-core@googlegroups.com.
> Visit this group at http://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to