ホームページ  >  記事  >  ウェブフロントエンド  >  Web サイト以外のルート ディレクトリにコンパイルおよびデプロイされている Vue プロジェクトに対処する方法

Web サイト以外のルート ディレクトリにコンパイルおよびデプロイされている Vue プロジェクトに対処する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-06-02 10:09:392009ブラウズ

今回は、Vue プロジェクトが Web サイト以外のルート ディレクトリにコンパイルおよびデプロイされている場合の対処方法を説明します。Vue プロジェクトが Web サイト以外のルート ディレクトリにコンパイルおよびデプロイされている場合の注意事項について説明します。以下は実際的なケースですので、見てみましょう。

vue-router:historyモード イントラネット環境:192.168.1.1:8080/index.html 外部ネットワーク環境:domain.com/ttsd/index.html

開発したプロジェクトは顧客側にデプロイするため、 customer 現時点では、展開に別のドメイン名 (またはサブドメイン) を使用したくない場合は、パッケージ化されたプログラムの構成を変更する必要があります。

設定ファイルを変更する1. パッケージ化されたリソース参照を相対パスに変更し、config/index.js の <code>build 属性の下にある を見つけます。 code> >assetsPublicPath

build: {
 ...
 assetsPublicPath: './' // 未修改前的配置为 '/',
}

config/index.jsbuild 属性下的 assetsPublicPath

if (options.extract) {
 return ExtractTextPlugin.extract({
 use: loaders,
 fallback: 'vue-style-loader',
 publicPath: '../../' // 修改路径
 })
} else {
 return ['vue-style-loader'].concat(loaders)
}

2、修改样式引用的资源文件(图片、视频、字体文件等)为相对路径 找到 build/utils.js 中,添加(或修改) publicPath'../../'

function getAbsolutePath () {
 let path = location.pathname
 return path.substring(0, path.lastIndexOf('/') + 1)
}
const routers = new Router({
 mode: 'history',
 base: getAbsolutePath(),
 ...
})

 

修改路由

在路由的history模式下,所有的路由都是基于根路径的,如 /xxxx ,由于部署目录未知,所以我们可以根据 location.pathname 来获取到当前访问的文件路径,来修改路由。

vue-router里提供了一个base的属性

base类型: string 默认值: "/" 应用的基路径。例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"

修改路由代码

location / {
 try_files $uri $uri/ /index.html;
 // 需要修改为
 try_files $uri $uri/ /dist/index.html;
}

至此,打包配置的相关修改已全部完成,项目也能够正常访问。 但还是会有一个问题,跳转到某个路由后,刷新页面,就gg了,页面为空白,此时就要修改nginx的配置了。

修改nginx的配置

官方给的nginx配置是根目录下的,即 https://router.vuejs.org/zh-cn/essentials/history-mode.html#nginx

rrreee

注: /dist

2、 スタイルによって参照されるリソース ファイル (画像、ビデオ

、フォント ファイルなど) を次のように変更します。 を相対パスで検索します。 build/utils.js で、publicPath'../../' に追加 (または変更) します

rrreee

ルーティングを変更

の履歴モードルーティングでは、すべてのルートは /xxxx などのルート パスに基づいています。デプロイメント ディレクトリが不明であるため、現在アクセスされているファイル パスは location.pathname に基づいて取得できます。ルートを変更します。

vue-router はベース属性を提供します
ベースタイプ: string デフォルト値: "/" アプリケーションのベースパス。たとえば、シングルページ アプリケーション全体が /app/ で提供される場合、base"/app/" に設定する必要があります。

🎜ルーティングコードを変更する🎜rrreee🎜この時点で、パッケージ構成への関連する変更はすべて完了し、プロジェクトに通常どおりアクセスできるようになります。 ただし、特定のルートにジャンプした後、ページを更新すると、ページが空白になります。このとき、nginx の設定を変更する必要があります。 🎜🎜🎜nginx 設定を変更する🎜🎜🎜公式の nginx 設定はルート ディレクトリ、つまり https にあります。 ://🎜router.vuejs.org/zh-cn/essentials/history-mode.html#nginx🎜rrreee🎜注: /dist 実際にデプロイされた Web サイトのディレクトリに従って変更するだけです。 個人的には、nginx の組み込み命令を通じて動的に取得することもできると感じていますが、以下ではよくわかりません。 🎜🎜この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 🎜🎜推奨読書: 🎜🎜🎜Node.js+コンソール出力ログファイルの分析例🎜🎜🎜🎜🎜 Vueを使用してドラッグアンドドロップ効果を実現する方法🎜🎜🎜

以上がWeb サイト以外のルート ディレクトリにコンパイルおよびデプロイされている Vue プロジェクトに対処する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。