[Gogs/Nginx] assets 404

Par Amstramgram, il y a 8 ans


Outils Linux

Bonjour,
je ne sais pas si il y a des utilisateurs de Gogs parmi vous mais je tente ma chance je ne suis plus à ca pres.

J'ai un Raspberry Pi ou j'ai installé:

j'ai un fichier conf pour nginx avec ca dedans :

server { listen 80; listen [::]:80; server_name NOMDOMAINE; root /var/www/user/www; index index.php index.html index.htm default.html; error_log /home/user/logs/error.log; access_log /home/user/logs/access.log; location / { try_files $uri $uri/ =404; } location /gogs/{ proxy_pass http://localhost:3042/; } # pass the PHP scripts to FastCGI server location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } error_page 404 500 501 /404.html; # optimize static file serving location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 30d; } location ~ /\.ht { deny all; } }

et pour gogs custom/conf/app.ini :

APP_NAME = Raspberry Pi RUN_USER = git RUN_MODE = prod [server] PROTOCOL = http DOMAIN = localhost ROOT_URL = http://MONDOMAINE/gogs/ HTTP_ADDR = 0.0.0.0 HTTP_PORT = 3042 UNIX_SOCKET_PERMISSION = 666 LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/ DISABLE_SSH = false START_SSH_SERVER = false

J'ai bien acces au fichier php pas de soucis et j'ai aussi acces au gogs mais tous les assets ont un status 404.

Comment je peux résoudre ce petit probleme de 404 ?

Merci

3 réponses

SimonDevelop, il y a 8 ans

Gogs possède sont propre service web pour fonctionner comme tu la sans doute compris, donc côté nginx tu n'a besoin que de ceci:

server { listen 80; server_name NOMDOMAINE; location /gogs/{ proxy_pass http://localhost:3042; } }

Je pense que ton problème d'asset vien de ton :

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 30d; }

En pour y accèder : http://NOMDOMAINE/gogs/
Gogs est codé en GO si je me trompe pas, et toute la partie php dans nginx que tu as l'habitude de mettre est gérer par le service web de gogs lui-même.

Dans la config de gogs custom/conf/app.ini je te propose ceci pour la partie server (repris du mien qui suffit):

[server] LISTEN = 127.0.0.1 DOMAIN = MONDOMAINE/gogs/ HTTP_PORT = 3042 PROTOCOL = http ROOT_URL = http://MONDOMAINE/gogs/ DISABLE_SSH = false OFFLINE_MODE = false

Garde une copie des tiens avant de tester
En espérant avoir pu t'aider ;)

Amstramgram, il y a 8 ans

bonjour,

effectivement le probleme est bien lié à ce bout de code:

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 30d; }

comment puis-je mettre le location sans affecter les url de gogs (si tu as une piste)?

j'ai essayer de faire de bloc server un avec les configuration pour php et l'autre pour gogs mais l'url gogs n'est plus accessible si je fais ca.

merci

SimonDevelop, il y a 8 ans

Tu parle du location /gogs/ ?
J'ai du mal comprendre un truc, tu peux m'expliquer un peu plus ?