web-dev-qa-db-ja.com

localhostの代わりにCodeigniterエコー[:: 1]

CodeIgniter 3をWebプラットフォームとして使用し、セマンティックUI CSSをページにインポートしようとしています。 CSSインポートのhrefプロパティでCodeIgniterのbase_url()メソッドを使用して、これを行っています。

ただし、semantic.css自体は、サーバー上に存在する他のフォントをインポートしますが、これはCross-Originリソース共有ポリシーのためにロードできません。これはエラーメッセージですchromeは私に与えます:

Originのフォント 'http://[::1] 'は、クロスオリジンリソース共有ポリシーによってロードがブロックされています:要求されたリソースに' Access-Control-Allow-Origin 'ヘッダーがありません。したがって、オリジン ' http:// localhost 'はアクセスを許可されません。

これは、base_url()がドメインが[::1]であり、ブラウザに入力したlocalhostではありません。

何らかの理由で、chrome(およびEdge)は[::1]とlocalhostを同じホストとして使用するか、または単にバカにしています。私が知っていることは、メインのsemantic.cssファイルのパスを変更してlocalhostをハードコードする場合、それは動作し、localhostを使用してページをリクエストする代わりに、[::1]

私はこれと非常によく似た他のプロジェクトをやったことがありますが、_"[::1]" 現れる。 PHPがそのようなパスをエコーする原因は何ですか?

13
Dalannar

あなたのbase_urlは空です。

config/config.php

$config['base_url'] = 'http://localhost/project_name';
37
Abdulla Nilam

より正確で動的な方法

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

それでもポートを使用できますが。

7
raakiiib

次のように$ config ['base_url']を編集する必要があります。

$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']);

ファイルの場所:codeigniter/application/config/config.php
上記のコードを使用して動的URLを取得します。

6
Sugan Krishna

Base_url()を使用するには;最初にURLヘルパーをロードする必要があります。これはapplication/config/autoload.php(67行目またはその付近)で実行できます:または手動で使用できます

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

設定するより

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

役に立つと思います

3
Muhammad Talha

これはconfig/config.phpで変更する必要があるもので、「localhost」と「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';

}
1
Kartik Bhat