Używam CodeIgniter 3 jako platformy internetowej i próbuję zaimportować CSS semantic-UI do mojej strony. Robię to, używając metody CodeIgniter's base_url()
we właściwości href do importowania CSS.Kodek echa [:: 1] zamiast localhost
Jednak sama plik semantic.css importuje inne czcionki obecne na moim serwerze, które następnie nie mogą zostać załadowane z powodu zasady współdzielenia zasobów Cross-Origin. To chrom komunikat daje mi:
czcionki z pochodzenia „http://[::1]
” został zablokowany z załadunkiem od polityki Cross-Origin Resource Sharing: Nie „Access-Control-Allow-Origin” header jest obecny na żądanego zasobu. Pochodzenie "http://localhost" jest zatem niedozwolone.
Dzieje się tak, ponieważ base_url() powoduje, że domena jest [::1]
, a nie localhost, tak jak wpisałem w przeglądarce.
Z jakiegoś powodu wydaje mi się, że chrome (a także Edge) nie uważa [::1]
i localhost jako tego samego hosta, a może po prostu jestem głupi. Wiem tylko, że jeśli zmienię ścieżkę głównego pliku semantic.css i twardego kodu lokalnego localhost, to działa i działa również wtedy, gdy zamiast żądać mojej strony przy użyciu localhost, używam [::1]
I Zrobiliśmy inne projekty bardzo podobne do tego i nigdy nie mieliśmy tego "[::1]"
. Co dokładnie powoduje, że php wywołuje taką ścieżkę?
Cóż, zdaję sobie z tego sprawę, ale nigdy go nie wypełniałem, a base_url zawsze było poprawnie rozwiązywane, czy było to na serwerze localhost, czy w innej domenie. Jeśli wypełniłem tę wartość, wyobrażam sobie, że będę musiał to zmienić, przenosząc mój projekt z mojego komputera na inny serwer, prawda? – Dalannar
Jakiś inny serwer oznacza? –
Gdybym przestawił się mówić example.com, czy base_url nadal echo localhost miałbym ustawić? – Dalannar