2017-08-16 1 views
0

MacBook Proとラズベリーパイをウェブサーバーとして使用したところ、の両方で同じ問題が発生しました。私は、ウェブサイトを構築し、それを転送するポートは現在と私は、サーバーのプライベートIPアドレスを入力してそれにアクセスするたびに(サーバーがあったかどうか私のMacBook Proまたはラズベリーパイ)、すべてが正常に動作しますが、私はを通じて自分のサイトにアクセスしたときにポートプライベートIPアドレスを使用してサイトを表示するときに発生しなかった2つの問題があります。プライベートIPとポート経由で私のウェブサイトにアクセスする際に奇妙な違いがありました。転送された公開IP

問題1)私のウェブサイトは "mysite.com"としましょう。 URLのアドレスバーに「mysite.com/about」と入力すると、その「about」ページに移動し、URLに「mysite.com/about」と正しく表示されます。しかし、私は「mysite.com」のホームページにと私はクリック私が代わりにURLをアドレスバーに要求を入力製ナビゲーションバーの「約」タブアップ、それが正しいになった場合「mysite.com/about」と言わなければならない場合は、ホームページとして「mysite.com」をURLとして表示します。私はAngularJSを使用していますが、私は複数ページのアプリケーションとして自分のウェブサイトを構築しました。はい、私はnavbarのタブのために自分のリンクにtarget = "_ self"を使用しました。

私のナビゲーションバーに関連するコードのセクション:

app.config(['$locationProvider', '$httpProvider', function($locationProvider, $httpProvider) { 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: true 
    }); 
}]); 

<li ng-class="{active: isActive('/')}"><a href="/" target="_self">Home</a></li> 
<li ng-class="{active: isActive('/about')}"><a href="/about" target="_self">About</a></li> 
<li ng-class="{active: isActive('/news')}"><a href="/news" target="_self">News</a></li> 

app.controller('NavController', ['$scope', '$location', function($scope, $location){ 
    $scope.isActive = function(destination){ 
     return destination === $location.path(); 
    } 
}]) 

と私は私のhtmlの頭の中で:

<base href="/"> 

と私が持っている私の.htaccessで:

RewriteEngine on 
RewriteRule ^about$ index.php [L] 
RewriteRule ^news$ index.php [L] 
ErrorDocument 404 /index.php 

問題2) window.innerHeightとwindow.innerWidthは私の無線LAN、プライベートIP以内にそれをアクセスするときよりも、今はるかに大きい数字を返します。たとえば私のiPhoneの場合、window.innerWidthはプライベートIP経由でアクセスすると320のサイズを返しますが、パブリックIPを使って同じページにアクセスすると980のサイズが返されます。しかし、window.screen.widthは変更されません。その結果、ポート転送サイトのレイアウトが異なり、壊れています。パブリックIP経由で見たときのように無視されているのは<meta name="viewport" content="width=device-width, initial-scale=1.0">です。任意のヘルプやリソースを事前に

ありがとう!

答えて

0

問題はコードではありませんでしたが、私はフレームをしていたという事実に1 & 1.私のURLにパブリックIPまたはDDNSのいずれかで、私のサイトを見ると、私のドメイン名に私のDDNSからをリダイレクトバーが正しいレイアウトになりましたが、URLバーの1 &ドメイン名で表示すると、レイアウトが乱れてしまいました。 <meta name="viewport" content="width=device-width, initial-scale=1.0">がiPhone window.innerWidthを320に保ち、980からそれを防ぐことができることを実感した後、メタタグが何とか上書きされているはずです。私は自分のドメイン名と私のddnsとの間のソースを見ました。私のドメイン名のページのメタタグは、私が書いたものではありませんでした。フレームリダイレクトは自分のドメインのメタタグ1 & 1つは私が得ていた2つの問題を引き起こした:1)私の場所全体のナビゲーションはすべて壊れていた2)ビューポートコードはもはや私のメタタグになかった。だから私は今までと同じ問題を抱えている人のためにこの質問を続けています。誰かがホームサーバーを実行していて、自分のドメインに自分のddnを接続しようとしている人は、フレームリダイレクトはそれを行う方法ではありません。現在、自分のドメインを自分のドメインと直接接続する必要があります。それが可能な場合、ネームサーバーとして自分のddnを使用する方法を見つけるまでです。現在、私はCNAMEを探しています。

関連する問題