Puncte:0

Mai multe coduri HTML imbricate includ directive cu un server nginx

drapel us

Am index.html:

<!--#include virtual="/includes/Framework.inc"-->

În interiorul Framework.inc am:

<!--#include file="/includes/HTML.inc"-->

Cu toate acestea, când deschid pagina pentru index.html, după ce am vizualizat codul sursă, văd că includerea imbricată nu s-a întâmplat și văd directiva include completă:

<!--#include file="/includes/HTML.inc"-->

Cum ne putem asigura că nginx acceptă mai multe niveluri de includere HTML?

Puncte:2
drapel gr

Nginx face suport SSI imbricat include. Cu toate acestea, modulul SSI procesează numai text/html Conținutul de tip MIME în mod implicit și dvs .inc fișierele sunt cel mai probabil returnate cu altceva în fișierul Tipul de conținut antet HTTP de răspuns. Puteți ajusta tipurile MIME globale pentru a le include .inc extensia sau specificați tipuri MIME suplimentare de procesat cu ssi_types directivă, cu toate acestea, aș prefera să definesc o locație suplimentară pentru /include/ continutul directorului:

locație /include/ {
    intern;
    ssi on;
    tipuri {
        text/html html htm inc;
    }
}
MightyMouse avatar
drapel us
Salut Ivan. Am o întrebare ulterioară despre asta. Putem face un SSI pe fișiere PHP? Ultimul nod/include încearcă să includă test.php, care conține . Dar tot ceea ce vedem în codul sursă este conținutul test.php. Am încercat să modific tipurile: ssi on; tipuri { text/html html htm inc php; }
Ivan Shatsky avatar
drapel gr
Nu sunteți limitat la conținut static, SSI poate fi aplicat în orice locație, chiar și în cele care au un handlere de conținut HTTP `proxy_pass` sau FCGI `fastcgi_pass`. Cu toate acestea, dacă doriți să includeți conținut din acele locații, ar trebui să faceți acest lucru folosind o subcerere „virtuală” și (evident) SSI ar trebui să fie activat pentru acele locații.
MightyMouse avatar
drapel us
oh la la, noi subiecte acolo. lol subcerere virtuală eh?..interesant monstru orice ar fi...
Ivan Shatsky avatar
drapel gr
Aceasta este o includere de fișier statică (folosind un nume de fișier): ``. Aceasta este o includere a răspunsului la subcerere (folosind un URI): ``. Subrequests este o caracteristică internă nginx, utilizată pe scară largă de câteva module (cel mai cunoscut exemplu poate un `auth_request_module`); același API intern nginx este folosit de SSI `virtual` includes. `/test.php` aici este un URI care ar trebui să treacă prin locația implicită a handlerului PHP (de obicei ceva de genul `location ~ \.php$ { ... }`) pentru a fi interpretat prin PHP-FPM.
MightyMouse avatar
drapel us
Geniu! Wow, asta a funcționat. Includerea împotriva unui fișier PHP într-un director virtual nu funcționează și extrage conținutul fișierului PHP. Am făcut asta, care poate fi exagerat: locație /includes/ { alias „Z:/Virtual Folders/Include/”; ssi on; tipuri { text/html html htm inc php; } locație ~ \.php$ { ssi on; tipuri { text/html html htm inc php; } fastcgi_param SCRIPT_FILENAME $request_filename; } }

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.