Voici ma config:Comment servir RoR JS/CSS sur nginx passagers sub_uri?
user nobody nobody;
worker_processes 2;
error_log /rails/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
passenger_root /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15;
passenger_ruby /usr/local/bin/ruby;
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -- "$cookie_YBY" ';
access_log /rails/nginx_access.log main;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10m;
connection_pool_size 256;
client_header_buffer_size 1k;
# large headers needed for FF
large_client_header_buffers 4 8k;
request_pool_size 4k;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
output_buffers 1 32k;
postpone_output 1460;
server {
listen 80;
server_name optisol.s0hoo.com;
client_max_body_size 50M;
#access_log /rails/access.log;
error_log /rails/smart_error.log;
root /rails/smart_ads_archive/public;
passenger_enabled on;
location ~* \.(ico|css|js|gif|jp?g|png)(\?[0-9]+)?$ {
expires max;
access_log off;
break;
}
}
}
et im en cours d'exécution sur le dernier nginx, rubis sur des rails 2.3.5, et le dernier passager. Le problème que j'ai est que je veux déployer un sub_uri, donc je modifier la configuration du serveur pour avoir:
root /websites/rails;
passenger_base_uri /smart_ads_archive; # <--- been added.
mais quand je visite la page tous les css que les liens vers/images/etc/etc/viennent avec 404 parce que l'application rails est assis dans le sous-uri. Sur mon hôte partagé avec Apache je suis capable de déployer l'application rails vers les sous-répertoires dans public_html sans problème et sans configuration à l'application mes rails et avec les fichiers css pointant vers/images ... et ça regarde juste les rails public/dossier d'images.
La question: y a-t-il un paramètre qui me manque dans Rails ou dans Nginx? Ou dois-je aller chercher toutes les/images/références et/css/et/js/et préfixer manuellement/smart_ads_archive/js .. etc
Merci pour l'aide!
Bonjour Patrick. J'ai suivi les instructions là-bas. J'ai un lien symbolique dans mon répertoire racine pointant vers le dossier public de mon application rails. Le problème que j'ai, et peut-être que je n'étais pas assez clair, est que les fichiers css et les fichiers js qui se réfèrent au chemin "/images/file.png" essayent de frapper le tld/images/file.png et non le tld/sub_uri/images/file.png. Les répertoires générés par les rails semblent obtenir le sub_uri, c'est la mention explicite des ressources qui ne sont pas trouvées. – Mike