摘要:寫在前面為了解決后端人員不足又招聘不到的問題,決定用前后端分離的方式寫項目,于是嘗試用跟搭建一個項目。首先,看一下我搭建的前端跟項目的結(jié)構(gòu)。
寫在前面
為了解決后端人員不足又招聘不到的問題,決定用前后端分離的方式寫項目,于是嘗試用django-rest-framework跟Vue.js搭建一個項目。
基礎搭建項目的參考了一下教程使用Django + Vue.js快速而優(yōu)雅地構(gòu)建前后端分離項目
整體來說教程寫的還可以,但是實際搭完之后,其實還是有很多問題需要解決。
首先,看一下我搭建的前端跟項目的結(jié)構(gòu)。
結(jié)構(gòu) web pack.config.jsvar path = require("path") var webpack = require("webpack") module.exports = { entry:{ build:"./src/main.js", index:"./src/index.js", foot:"./src/foot.js", login:"./src/login.js", about_us:"./src/about_us.js", sideList:"./src/sideList.js", }, output: { path: path.resolve(__dirname, "./dist/"), publicPath: "/dist/", filename: "static/js/[name].js" }, module: { rules: [ { test: /.vue$/, loader: "vue-loader", options: { loaders: { // Since sass-loader (weirdly) has SCSS as its default parse mode, we map // the "scss" and "sass" values for the lang attribute to the right configs here. // other preprocessors should work out of the box, no loader config like this necessary. "scss": "vue-style-loader!css-loader!sass-loader", "sass": "vue-style-loader!css-loader!sass-loader?indentedSyntax" } // other vue-loader options go here } }, { test:/.css$/, loader:"style-loader!css-loader" }, { test: /.js$/, loader: "babel-loader", exclude: /node_modules/ }, { test: /.(png|jpg|gif|svg)$/, loader: "file-loader", options: { name: "static/img/[name].[ext]?[hash]" } } ] }, resolve: { alias: { "vue$": "vue/dist/vue.esm.js" } }, devServer: { historyApiFallback: true, noInfo: true }, performance: { hints: false }, devtool: "#eval-source-map" } if (process.env.NODE_ENV === "production") { module.exports.devtool = "#source-map" // http://vue-loader.vuejs.org/en/workflow/production.html module.exports.plugins = (module.exports.plugins || []).concat([ new webpack.DefinePlugin({ "process.env": { NODE_ENV: ""production"" } }), new webpack.optimize.UglifyJsPlugin({ sourceMap: true, compress: { warnings: false } }), new webpack.LoaderOptionsPlugin({ minimize: true }) ]) }
我把Django的static文件直接指向了dist.
在settings.py中設置。
STATIC_URL = "/fontend/dist/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, "../fontend/dist/static")
Vue實現(xiàn)單頁面渲染,把單個頁面的css都壓縮到js中,index.html頁面代碼直接引用一個js即可。
有個問題需要解決,就是這種目錄結(jié)構(gòu)下,vue的根目錄是從dist開始,索引不到fontend,
而django是從fontend開始,所以上述路徑/dist/static/js/index.js,vue是可以訪問到的,而django訪問不到,想讓django訪問到,就在訪問靜態(tài)文件時改寫靜態(tài)文件的路徑。在urls.py中加入這樣一行
from django.views.static import serve from mainsys import settings url(r"^(?P.*)$", serve, {"document_root": settings.DOCUMENT_ROOT, "show_indexes": True}),
其中settings.py設置。
DOCUMENT_ROOT = os.path.join(BASE_DIR, "fontend/")
先寫這么多,以后遇到坑的時候再更新。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44406.html
摘要:寫在前面為了解決后端人員不足又招聘不到的問題,決定用前后端分離的方式寫項目,于是嘗試用跟搭建一個項目。首先,看一下我搭建的前端跟項目的結(jié)構(gòu)。 寫在前面 為了解決后端人員不足又招聘不到的問題,決定用前后端分離的方式寫項目,于是嘗試用django-rest-framework跟Vue.js搭建一個項目。 基礎搭建項目的參考了一下教程使用Django + Vue.js快速而優(yōu)雅地構(gòu)建前后端分...
閱讀 3461·2023-04-26 02:48
閱讀 1465·2021-10-11 10:57
閱讀 2490·2021-09-23 11:35
閱讀 1196·2021-09-06 15:02
閱讀 3294·2019-08-30 15:54
閱讀 1612·2019-08-30 15:44
閱讀 879·2019-08-30 15:44
閱讀 988·2019-08-30 12:52