Codeigniter eco [::1] invece di localhost

Sto utilizzando CodeIgniter 3 come piattaforma web e cercando di importare semantico-UI CSS nella mia pagina. Io sto facendo così, utilizzando CodeIgniter del base_url() metodo la proprietà href CSS importazione.

Tuttavia, semantico.css stessa importazioni di alcuni altri font presenti sul mio server, che sono quindi in grado di caricare a causa di Cross-Origin resource sharing politica. Questo è il messaggio di errore di chrome mi dà:

Di carattere origine ‘http://[::1]‘ è stato bloccato il caricamento di Cross-Origin Resource Sharing: No ‘Access-Control-Allow-Origin’ intestazione è presente la risorsa richiesta. Origine ‘http://localhost‘, pertanto, non è consentito l’accesso.

Questo perché base_url gli() riecheggia il dominio è in fase di [::1] e non localhost come ho digitato nel browser.

Per qualche motivo, non mi sembra che chrome (e anche Edge) non considera [::1] e localhost come lo stesso host, o forse sto solo di essere stupido. Quello che so però è che se cambio il percorso delle principali semantica.file css e codice localhost in esso, funziona, e funziona anche se, invece di chiedere la mia pagina localhost, io uso [::1]

Ho fatto altri progetti molto simili a questo, e non ho mai avuto questo "[::1]" apparire. Che cosa esattamente sta causando php echo tale percorso ?

InformationsquelleAutor Dalannar | 2016-03-08

 

5 Replies
  1. 36

    Proprio a causa della vostra base_url è vuoto.

    In config/config.php

    $config['base_url'] = 'http://localhost/project_name';
    • Beh, mi rendo conto di questo, ma non ho mai compilato e la base_url gli è sempre stato risolto correttamente se era su localhost o qualche altro dominio. Se ho riempito questo valore mi viene da pensare che avrei bisogno di cambiarla quando si muove il mio progetto dalla mia macchina per qualche altro server giusto ?
    • Qualche altro server significa??
    • Se mi sono trasferito a dire example.com sarebbe base_url gli risuonano ancora localhost avevo impostato che ?
    • Quando si ha ospitato a vivere server (es: stackoverflow.com) quindi devi cambiare baseurl così
    • Che è quello che sto cercando di evitare, dal momento che sarà molto spesso che questo progetto dalla mia macchina per un live server volevo avere tutto questo cambierà automaticamente in modo che entrambe le versioni possono essere la stessa.
  2. 6

    Più preciso e dinamico,

    $root = "http://".$_SERVER['HTTP_HOST'];
    $root .= dirname($_SERVER['SCRIPT_NAME']);
    $config['base_url'] = $root;

    Anche se si può ancora usare la porta.

  3. 5

    È necessario modificare $config[‘base_url gli’] come segue,

    $config['base_url'] = '';
    $config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
    $config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
    $config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);

    Percorso del File: codeigniter/application/config/config.php


    Utilizzare il codice di cui sopra per ottenere un url dinamico.

  4. 3

    Per utilizzare base_url gli(); si deve prima avere l’URL Helper caricato. Questo può essere fatto sia in application/config/autoload.php (su o intorno alla linea 67): o manualmente utilizzando

    $this->load->helper('url');

    di impostare il

    $config['base_url'] = 'http://localhost/your_site_url';

    penso che vi aiuterà a

  5. 1

    Questo è ciò che è necessario modificare in config/config.php funziona correttamente in “localhost” come pure nel vostro “server”:

    $config['base_url'] = "http://".$_SERVER['SERVER_NAME'];
    
    $config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
    
    if(!defined('DOCUMENT_ROOT')) define('DOCUMENT_ROOT',str_replace('application/config','',substr(__FILE__, 0, strrpos(__FILE__, '/'))));
    
    $config['base_path'] = constant("DOCUMENT_ROOT");
    
    $config['js_url'] = $config['base_url'].'js/';
    
    $config['css_url'] = $config['base_url'].'css/';
    
    $config['image_url'] = $config['base_url'].'img/';
    
    //Host resolution for cross origin requests
    
    if(ENVIRONMENT == 'production') {
        $config['host'] = 'www.<domain_name>.com';
    } else {
    
    $config['host'] = 'localhost';
    
    }

Lascia un commento