2012-04-13 10 views
1


Ich versuche Padrino mit Sinatra-Assetpack zu kombinieren, ohne Erfolg.Padrino + sinatra-assetpack funktioniert nicht

Das ist mein Gemfile:

source :rubygems 

gem 'rake' 
gem 'sinatra-flash', :require => 'sinatra/flash' 

# Component requirements 
gem 'haml' 

# Assets requirements 
gem 'sinatra-assetpack', :require => 'sinatra/assetpack' 

# Test requirements 

# Padrino Stable Gem 
gem 'padrino', '0.10.6' 

in meiner app/app.rb Datei! I:

require 'sinatra/assetpack' 

class Coffee < Padrino::Application 
    register Padrino::Rendering 
    register Padrino::Mailer 
    register Padrino::Helpers 

    register Sinatra::AssetPack 

    assets { 
    serve '/js', from: '/app/assets/javascripts' 
    serve '/css', from: '/app/assets/stylesheets' 

    css :main, ['/css/main.css'] 
    js :application, ['/js/application.js'] 
    } 

    enable :sessions 

end 

meine Javascript-Dateien sind in/app/assets/JavaScripts und CSS-Dateien in/app/assets/stylesheets, aber Padrino antwortet mit einem 404 für /css/main.css und /js/application.js

Irgendwelche Ideen?

Dank

+0

Das ist sehr seltsam ... Ich begann ein 50 PT Kopfgeld auf diese Frage, und es war nie die Frage Schöpfer vergeben, aber ich habe die 50 Punkte nicht zurück zu bekommen .. was ist damit? –

Antwort

1

die Frage schaut hat, sowieso in meiner Anwendung, aber von den Blicken Ihrer app.rb Code für Sie, es ist wahrscheinlich das gleiche;

Assetpack dient Dateien aus den Verzeichnissen Sie in Ihrem serve Anrufe angeben, in Bezug auf die Anwendung der Wurzel. In Padrino ist die Anwendung root yourapplication/app, also, wenn Sie Asset-Paket sagen, um css von /app/assets/stylesheets zum Beispiel zu dienen, sucht es wirklich nach den Dateien in yourapplication/app/app/assets/stylesheets.

Der zweite Teil des Problems war, dass in dem AssetPack docs, den Code

set :root, File.dirname(__FILE__) 

vor der register Sinatra::AssetPack Linie zeigt, die ich übernehmen wird die richtig Stammverzeichnis der Anwendung einstellen, so dass AssetPack in denen aussieht Root-Anwendungsverzeichnis anstelle von app. Aber selbst wenn ich diesen Aufruf auf set geändert habe, um ein Verzeichnis aus der app.rb-Datei hochzugehen (da es in app Verzeichnis in Padrino sitzt), schien es keinen Effekt auf AssetPack zu haben.

Kurz gesagt, sollte das Ändern der Pfade in den `Serve'-Aufrufe relativ zu Ihrem App-Verzeichnis das Problem beheben. In Ihrem Fall sollten sie sein:

serve '/js', from: '/assets/javascripts' 
serve '/css', from: '/assets/stylesheets' 
Verwandte Themen