我正在尝试将我现有的庞大 Django 项目(目前在前端的各个页面中使用来自 CDN 的 Vue)转换为通过 NPM 的 SPA,后端和前端现在是分开的(除了 Django 处理一些 URL 路由并加载Vue 最初)。
我遇到了静态文件和 URL 路由的问题。在 中vue.config.js,最初建议我设置值如下:
const pages = {
index: "src/main.js"
};
module.exports = {
runtimeCompiler: true,
publicPath: "/static/vue/",
outputDir: "./dist/static/vue/",
indexPath: "../../templates/vue_index.html",
pages: pages
};
Run Code Online (Sandbox Code Playgroud)
这样当与 Django 查找静态文件的方式结合起来时:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'frontend/dist/templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'frontend/dist/static')]
STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)
该页面将能够加载。
不幸的是,如果我尝试加载页面,而不是在网站 root 加载/,它会在 …
在此先感谢您的帮助!
我正在写一个快速的应用程序上实现facebook登录,我在登录完成后执行segue时遇到了一些麻烦.
作为FBSDKLoginButtonDelegate的一部分,我有两种方法:
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result:
FBSDKLoginManagerLoginResult!, error: NSError!)
{}
Run Code Online (Sandbox Code Playgroud)
和
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!)
{}
Run Code Online (Sandbox Code Playgroud)
登录按钮被正确地实施,我能够读取权限/ FB令牌,并通过这个到亚马逊Cognito.
但奇怪的是,我无法以编程方式将登录信息转换为不同的视图(控制器).
按下FB登录按钮将用户带到Web浏览器(Facebook SDK处理所有这些),然后进行登录.
如果我放置一个segue,如:
dispatch_async(dispatch_get_main_queue(), {
self.performSegueWithIdentifier("segueLoginViewtoHome", sender: nil })
Run Code Online (Sandbox Code Playgroud)
在loginButton()中,它永远不会真正执行(即,当Web浏览器消失时,用户返回到具有登录按钮的视图,而不是segue想要的新视图).我相信该行在浏览器窗口返回到包含登录按钮(和segue)的视图之前执行,但我不知道如何告诉程序"等待"视图成为唯一一个活动且再次可见的视图执行segue.
我相信是这种情况,因为如果我将相同的segue代码放入loginButtonDidLogOut()中,那里不需要切换到浏览器,则在从"滑出"的工作表中按下"注销"后,segue执行得很好屏幕的底部.
此视图控制器已正确设置为委托,如下所示,如果编码在注销时发生,则segue正常运行.
任何帮助将不胜感激,为长期问题道歉,并谢谢!
提前致谢!这更像是一个“哲学”问题,然后是直接请求对代码的意见,尽管我非常感谢任何人对代码示例的意见。
从我记事起,我就一直是“传统”开发人员,现在我以数据科学家的身份从事专业工作。话虽如此,我从未真正接触过的一个前沿领域是 Web 开发。
对于我正在处理的项目,我需要构建(并且在一个稍微加快的时间范围内)一个外观漂亮的 Web 应用程序,其功能与 Wiki 网站有些相似(使用 Mediawiki 等现有代码库在这里不是一种选择,因此假设一切必须从头开始构建)。
在尝试以“正确的方式”做事时,我进行了如下设置:
显然,这里剩下的最重要的部分是前端。我试图向几个朋友和熟人寻求建议,并被指出了 Bootstrap 的方向。
从这里开始,我承认,我有点卡住了。
我在 Django文档中看到不涉及任何 Javascript 的示例(看起来,HTML 页面可以通过最小的提升直接与数据库交互,使用看起来非常简单的“在此处插入占位符”逻辑,就像我一样通过 Django 模型设置它)。我在这里和这里看到了类似的结构。
但后来我在网上看到了另一套关于如何制作功能性 webapp的指令——为 Django 模型创建序列化程序到 JSON,构建 REST api,使用 Javascript 编写前端页面逻辑并使用导入到 Javascript 中的库与手动构建的 API 交互以与后端交互。
现在,当然,“第一种”方法似乎要简单得多。第二个感觉就像是在重新发明轮子——如果我可以简单地使用像 一样的结构{{ num_books }},我为什么要构建所有这些 API 并担心 JSON?但我觉得很困惑。从长远考虑,是否有“正确”的选择?似乎我可以找到使用 Bootstrap 和采用这两种方法的其他框架的人。除非我采用 JSON/API 方法,否则我可以不使用 Javascript 代码吗?这还重要吗?这里真正的区别是什么?
在波涛汹涌的大海上使用指南针将不胜感激。当然,我不可能是第一个尝试用 Django …
在下面的代码中,调用swapBig(a,some number,somenumber),其中a是一个数组,被复制到swapBig()中的bleh [].当交换bleh []中的值时,[]中的相应值也会更改.为什么会发生这种情况,以及如何编写代码以便只修改bleh []而不是原始的a []?非常感谢!
public static void swapBig(String bleh[], int to, int from){ //switches data
//Actually performing the swaps
String temp;
temp = bleh[to];
bleh[to] = bleh[from];
bleh[from] = temp;
}
public static void quickSort(String a[], String b[], String c[], String d[],
String e[],String f[], int from, int to){
//performing the quickSort
if (from >= to) return;
int p = (from + to) / 2;
int i = from;
int j = to;
while (i <= j){
if …Run Code Online (Sandbox Code Playgroud)